静态 CArray C++ MFC

static CArray C++ MFC

我似乎无法制作静态 CArray 并使用它。

这是我的代码:

class WhiteBoard
{
public:

    static CArray<WhiteBoard, WhiteBoard> test;

    void tester()
    {
        test.Add(*this);
    }
};

并且在调用测试器方法时,我得到了一个未解析的外部符号。 完整的错误代码是:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol "public: static class CArray<class WhiteBoard,class WhiteBoard> WhiteBoard::test" (?test@WhiteBoard@@2V?$CArray@VWhiteBoard@@V1@@@A) MFCApplication2 C:\Users\sw.eng\source\repos\MFCApplication2\MFCApplication2Dlg.obj 1   

这是我第一次使用 CArray,但我弄乱了 int 的 CArray,但一切正常。

会不会是我想在 WhiteBoard 中放置一个 WhiteBoard 的 CArray? (我确实需要这个功能来跟踪所有创建的子对象,这就是我这样做的原因)

删除 static 关键字会使所有内容 运行。但是它不是一个静态成员,我需要它是一个。

无论如何,所有帮助都将是不可思议的,非常感谢。

编辑 1:

我做了另一个 class,我称之为 BoardBoss。 WhiteBoard 继承了 BoardBoss。 CArray 现在是 BoardBoss 类型。 CArray 测试;

问题仍然存在。

需要定义静态 class 成员。正如发布的那样,WhiteBoard class 仅声明标识符 test。这让编译器很高兴,但是链接器失败了,因为它在使用时找不到引用的符号。

要解决此问题,您需要将以下内容添加到编译单元:

CArray<WhiteBoard, WhiteBoard> Whiteboard::test;