我似乎无法制作一个静态的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混在一起,一切正常。
是不是我想让CArray of WhiteBoard在WhiteBoard里面?(我确实需要这个功能来跟踪所生成的所有子对象,这就是我为什么这样做的原因)
删除static关键字将使一切运行。但它不是静态成员,我需要它成为一个静态成员。
无论如何,所有的帮助都会令人难以置信,非常感谢。
编辑1:
我又上了一门课,我叫BoardBoss。WhiteBoard继承了BoardBoss。CArray现在是BoardBoss类型的。CArray试验;
这个问题仍然存在。
发布于 2021-09-26 17:00:38
需要定义静态类成员。如前所述,WhiteBoard类仅仅声明了标识符test。这使编译器很高兴,但是链接器失败了,因为它在使用时无法找到引用的符号。
要解决这个问题,需要将以下内容添加到编译单元中:
CArray<WhiteBoard, WhiteBoard> Whiteboard::test;https://stackoverflow.com/questions/69336769
复制相似问题