gpt4 book ai didi

c++ - LNK2019 使用非模板类

转载 作者:太空宇宙 更新时间:2023-11-04 16:31:31 26 4
gpt4 key购买 nike

我在使用引用其中其他类的类时遇到链接器错误。

1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall MovePattern::~MovePattern(void)" (??1MovePattern@@QAE@XZ) referenced in function "public: __thiscall Enemy::Enemy(int,int,class MovePattern,char)" (??0Enemy@@QAE@HHVMovePattern@@D@Z)
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall MovePattern::MovePattern(void)" (??0MovePattern@@QAE@XZ) referenced in function "public: __thiscall Enemy::Enemy(int,int,class MovePattern,char)" (??0Enemy@@QAE@HHVMovePattern@@D@Z)

它来自于引用这个类:

class MovePattern{
public:
char next;

MovePattern();
MovePattern(const MovePattern &old){
p = old.p;
pi = 0;
next = p[0];
n = p[0];
}

MovePattern(char *pattern){
p = pattern;
pi = 0;
next = p[0];
n = p[0];
}
~MovePattern();

在这个类中:

class Enemy{
public:
Enemy(int a, int b, MovePattern p,char c)
x = b;
y = a;

MovePattern pattern (p);
symbol = c;

它们目前在同一个 .cpp 文件中,并且 MovePattern 在 Enemy 之上。

我不知道这里发生了什么

带有空白控制台项目的 Visual C++ 2010 Express,我还没有发现任何与我的问题类似的问题,我们将不胜感激。

最佳答案

您还没有定义默认构造函数和析构函数,如下所示:

MovePattern();  //default constructor
~MovePattern(); //destructor

如果声明它们,则必须定义它们。声明必须有定义。否则当使用它们时,无论是隐式还是显式,您都会遇到链接器错误。

关于c++ - LNK2019 使用非模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com