【发布时间】:2017-02-20 17:55:06
【问题描述】:
所以我有大量的类(20+ 我想将它们存储到一个地图数组中:
mapArray['ClassName'] = new ClassName();
我想过做类似的事情
App::setup() {
mapArray['ClassName1'] = new ClassName1();
mapArray['ClassName2'] = new ClassName2();
mapArray['ClassName3'] = new ClassName3();
}
但是我认为这是低效的。我正在考虑如何去做,我正在考虑使用预处理器指令。像这样的
#define DECLARE_CLASS(ClassName)
mapArray[ClassName] = new ClassName();
但是,使用这种方法,我仍然需要在同一个函数或其他东西中多次调用它。
如何将所有类添加到同一个数组中,但又不在同一个函数中多次调用同一个代码?这样代码就不会重复。
【问题讨论】:
-
大概这些类都派生自一个通用的基类?
-
是的,他们都是。
标签: c++ arrays visual-c++ c-preprocessor