好吧,所以我是新来的C + +试图写我简单的程序,这是一副牌。但是我收到了错误:“未解决的外部问题”。我有一种感觉,它与构造函数中的实例化有关。快速查看将不胜感激。简单的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;
};
如果您发布确切的错误消息**,这将有所帮助。我非常怀疑它与'构造函数中的实例化'有什么关系。更有可能的是,你没有编译所有的源文件,或者你没有链接到正确的库。猜测,我会说你有一个文件Card.cpp,你没有编译和/或链接。 – john 2013-04-10 06:45:40
你没有在'Deck.h'中显示代码。 'Deck'构造函数中的代码使用'setVal()'和'setSuit()',但是你没有显示任何代码。 – 2013-04-10 06:48:17
这并不重要,但是你为了一个简单的数据模型而自杀。图片*号码* 0..51。现在挑一个(22例作为样本)。采取'n%4'。那就是你的西装(0 =黑桃,1 =棍棒,2 =钻石,3 =心脏)。接下来拿'n%13'。这就是你的等级(0..12,高或低,你的选择)。换句话说,你可以只用一个正数和两个模操作来设计卡片级别和*套装。你的“套牌”然后变成一个“int deck”[52];加载数字“0..51”并洗牌。副手好处:你可以增加52的倍数来增加甲板的大小,以增加更多的甲板 – WhozCraig 2013-04-10 07:01:16