【发布时间】:2014-04-08 16:34:14
【问题描述】:
我是编程初学者,熟悉 Java,但我目前在使用 C++ 时遇到了一些麻烦。我收到以下错误:未解析的外部符号,当我尝试在不同类的函数中执行此操作时:
player1 = new Character(50, 300, linep1);
错误:
mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl Character::Character(int,int,class QLine *)" (??0Character@@QEAA@HHPEAVQLine@@@Z) 引用在函数 "public: void __cdecl MainWindow::setUpPlayers(void)" (?setUpPlayers@MainWindow@@QEAAXXZ)
我的角色头文件如下所示:
#include <QLine>
class Character
{
public:
Character(int xCoor, int yCoor, QLine *line);
QLine getView();
int getX();
int getY();
int getScore();
private:
QLine *view;
const int x;
int y;
int score;
};
我的 cpp 文件的上半部分如下所示:
#include "character.h"
Character::Character(int xCoor, int yCoor, QLine *line)
{
score = 0;
x = xCoor;
y = yCoor;
view = line;
}
如您所见,我目前也在使用 Qt。 谁能帮我解决这个问题?非常感激!
【问题讨论】:
-
作为记录,您真的应该避免在标题中包含标题。如果需要,只需在标题中使用前向声明。我指的是
QLine类。在Class Character上方,您可以输入Class QLine;,然后将包含移动到cpp 文件中。 -
您可以编辑您的帖子以包含确切的错误文本吗?
-
刚刚包含完整的错误!
-
@Cyber:可以包含 QLine。它不会在版本等之间发生变化,因此开销不大。我个人宁愿删除指针以使算术更简单。
标签: c++ windows qt linker qmake