好的,所以我是C ++的新手并尝试编写一个简单的程序,这是一副卡片。但我得到了错误:“未解决的外部”。我觉得它与构造函数中的实例化有关。快速浏览一下会很感激。
#include "Card.h"
#include "Deck.h"
Deck:: Deck()
{
this -> currentCard=0;
this -> index = 0;
for(int i=0;i<4;i++)
{
for(int j =0; j < 13;j++)
{
deck[index].setVal(i);
deck[index].setSuit (j);
index++;
}
}
}
void Deck::shuffle()
{
//implementation
}
Card Deck:: dealCard()
{
//implementation
}
int main (){}
我的头文件是:
#include "Card.h"
class Deck
{
public:
Deck();
void shuffle();
Card dealCard();
private:
Card deck [52];
int currentCard;
int index;
};
答案 0 :(得分:0)
错误表示您有未解析的外部符号。
现在符号可以是变量,类,成员函数。
为什么它们没有得到解决是因为可能是您的代码的某些部分(或您正在使用的库)依赖于这些符号而未找到它们,因为您没有链接正确的库或实现它们。
请尝试编译所有源文件,并确保没有符号(变量,类,成员函数等)丢失。
答案 1 :(得分:0)
Card
课似乎是未宣布的。您可能希望在Card.h
文件中执行此操作。您只需输入class Deck;
即可向前声明,但请记住它只是一个必须在某处解决的占位符。
答案 2 :(得分:0)
通常'未解析的外部'指向未解决的符号:
错误LNK2001:未解析的外部符号“未解析的符号”
这将显示链接器缺失的内容。
希望这有帮助,Yaron