我正在制作一个处理扑克牌手和概率的简单程序。我在各种各样的手中运行测试用例,在我的程序中,我需要一个可以吸引我的手的套牌,这个套牌是不变的,全球性的。我的程序有三个主要对象:卡片,手和甲板。我正在尝试创建一个全局套牌,但似乎无论我做什么,我都会收到一个错误消息,说globalDeck在hand.cpp中未定义。下面是相关代码:C++中的外部链接
hand.cpp:
Hand::Hand(int &one, int &two, int &three, int &four, int &five)
{
cardsinHand.push_back(globalDeck.copy(one));
cardsinHand.push_back(globalDeck.copy(two));
cardsinHand.push_back(globalDeck.copy(three));
cardsinHand.push_back(globalDeck.copy(four));
cardsinHand.push_back(globalDeck.copy(five));
}
和我cardgames.cpp文件:
#include "stdafx.h"
#include<iostream>
#include "hand.h"
using namespace std;
Deck globalDeck;
void printresults(long successes, long trials)
......
注:我曾尝试与EXTERN甲板globalDeck更换甲板globalDeck,EXTERN常量globalDeck等等等等。似乎没有任何东西可以让globalDeck在hand.cpp中定义。此外,在整个程序中,该套牌将保持不变,因此可以将其声明为全局常量或全局变量,以较简单的方式进行声明。我的错误输出是:
1>c:\users\\desktop\semesters past\winter 2013\computer programming\projects\cardgames\cardgames\hand.cpp(31): error C2065: 'globalDeck' : undeclared identifier
1>c:\users\\desktop\semesters past\winter 2013\computer programming\projects\cardgames\cardgames\hand.cpp(31): error C2228: left of '.copy' must have class/struct/union
1> type is 'unknown-type'
不是使用全局变量,而是使用一个包含您的游戏状态并在其方法中处理游戏活动的类。 –