静态 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;
我似乎无法制作静态 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;