尝试使用外部声明的类对象,但收到错误。
赌注
#ifndef WAGER_H
#define WAGER_H
#include <QString>
void won_color_bets(int cardsDealt);
class Wager
{
int bet;
int payout;
public:
bool didBet;
bool won;
QString colorBet;
QString colorResult;
Wager();
};
extern Wager street1;
#endif // WAGER_H
下注
#include "wager.h"
#include "deck.h"
#include<QDebug>
#include<QVector>
#include<QList>
#include"mainwindow.h"
Wager street1;
Wager street2;
Wager street3;
Wager street4;
Wager street5;
主窗口
void MainWindow::street1BetRedClicked()
{
street1.colorBet="Red";
qDebug()<<"street1Red Clicked";
}
mainwindow.obj:-1:错误:LNK2001:未解析的外部符号“ Wager street1类”(?street1 @@ 3VWager @@ A)
调试成功输出
street1Red Clicked
最佳答案
下面的错误消息告诉您或者您尚未链接Wager.cpp文件,或者您错过了实现一个功能的过程。在您的情况下,您忘记为Wager();
提供函数定义
错误:LNK2001:无法解析的外部符号“类Wager street1”
(?street1 @@ 3VWager @@ A)
要解决此问题,您需要在Wager.cpp或Wager.h中的某个地方实现Wager()
。
我为Wager::Wager()
提供了一个示例实现(默认构造函数:函数名与类名相同,并带有0个参数)。
注意:以下代码还初始化了成员初始化器列表中的所有类成员。
Wager::Wager()
:bet(0),
payout(0),
didBet(false),
won(false),
colorBet("blue"),
colorResult("blue)
{
}
关于c++ - Unresolved external 问题C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14079707/