尝试使用外部声明的类对象,但收到错误。

赌注

#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/

10-11 19:23