Я делаю простую программу, работающую с покерными руками и вероятностями. Я запускаю тестовые случаи на разных руках, и в моей программе мне нужна колода, из которой можно нарисовать свою руку, постоянную и глобальную. В моей программе есть три основных объекта: карта, рука и колода. Я пытаюсь создать глобальную колоду, но кажется, что бы я ни делал, я получаю сообщение об ошибке, говорящее, что globalDeck не определен в hand.cpp. Вот соответствующий код:
рука.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)
......
Примечание. Я попытался заменить Deck globalDeck на extern Deck globalDeck, extern const 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'