【发布时间】:2021-11-19 00:32:10
【问题描述】:
我似乎无法制作静态 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 中添加一个 CArray WhiteBoard 吗? (我确实需要这个功能来跟踪制作的所有子对象,这就是我这样做的原因)
删除 static 关键字会使一切运行。但它不是静态成员,我需要它是一个。
无论如何,所有帮助都将令人难以置信,非常感谢。
编辑 1:
我开设了另一个课程,我称之为 BoardBoss。
WhiteBoard 继承了 BoardBoss。
CArray 现在是 BoardBoss 类型。 CArray
问题仍然存在。
【问题讨论】:
-
您的语法只是声明静态成员,因此链接错误。看这里:tutorialspoint.com/cplusplus/cpp_static_members.htm