首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态CArray C++ MFC

静态CArray C++ MFC
EN

Stack Overflow用户
提问于 2021-09-26 16:20:18
回答 1查看 98关注 0票数 1

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

这是我的密码:

代码语言:javascript
复制
class WhiteBoard
{
public:

    static CArray<WhiteBoard, WhiteBoard> test;

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

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

代码语言:javascript
复制
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混在一起,一切正常。

是不是我想让CArray of WhiteBoard在WhiteBoard里面?(我确实需要这个功能来跟踪所生成的所有子对象,这就是我为什么这样做的原因)

删除static关键字将使一切运行。但它不是静态成员,我需要它成为一个静态成员。

无论如何,所有的帮助都会令人难以置信,非常感谢。

编辑1:

我又上了一门课,我叫BoardBoss。WhiteBoard继承了BoardBoss。CArray现在是BoardBoss类型的。CArray试验;

这个问题仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-26 17:00:38

需要定义静态类成员。如前所述,WhiteBoard类仅仅声明了标识符test。这使编译器很高兴,但是链接器失败了,因为它在使用时无法找到引用的符号。

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

代码语言:javascript
复制
CArray<WhiteBoard, WhiteBoard> Whiteboard::test;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69336769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档