抽象类中的静态数组

时间:2012-05-22 22:37:30

标签: c++

我有一个抽象类,我希望将其作为静态变量包含在同一个类的指针数组中。该数组稍后将由派生类使用。

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()

如何实现这一结果?

1 个答案:

答案 0 :(得分:3)

您已声明数组Bases,但尚未对其进行定义。您需要在其他地方定义它,最好是在cpp文件中:

Base* Base::Bases[100];