我有一个抽象类,我希望将其作为静态变量包含在同一个类的指针数组中。该数组稍后将由派生类使用。
class Base {
public:
virtual int someValue() = 0;
static Base* Bases[100];
void Startup() {
Bases[2] = this; // just a test
};
};
class Derived : public Base {
public:
virtual int someValue() {return 10};
};
然而,在编译时,我收到以下错误:Undefined symbols for architecture i386 "Bases", referenced from: Base::Startup()
。
如何实现这一结果?
答案 0 :(得分:3)
您已声明数组Bases
,但尚未对其进行定义。您需要在其他地方定义它,最好是在cpp文件中:
Base* Base::Bases[100];