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