Я пытаюсь написать игру со змеями на языке c ++, и мне необходимо использовать наследование (если честно, я не уверен, что мое понимание наследования даже правильно). У меня есть два класса:
class gameInfo
class playSnake
внутри gameInfo, это функция, вызываемая main для установки значения длины и ширины (псевдокод):
class gameInfo{
int playFieldWidth;
int playFieldHeight;
void getPlayFieldDimensions(){
cout << "How big do you want to play field to be?\n";
cout << "Width: ";
cin >> playFieldWidth;
cout << "Height: ";
cin >> playFieldHeight
}
}
class play: public gameInfo {
void setPlayField() {
cout << playFieldWidth; // if I enter 10, returns -858993460.
//loop will print nothing.
for (int row = 0; row < playFieldHeight; row++) {
for (int col = 0; col < playFieldWidth; col++) {
if (row = 0 || row == playFieldWidth - 1) {
cout << "*";
} else if (col == 0 || col == playFieldWidth - 1) {
cout << "*";
} else {
cout << " ";
}
} cout << endl;
}
}
main () {
playSnake play;
gameInfo info;
info.getPlayFieldDimensions();
cout << info.playFieldWidth; // if I enter 10, returns as 10.
play.setPlayField();
system("PAUSE");
}
Проблема в том, что внутри setPlayField () ширина и высота имеют сохраненное значение некоторого сверхдлинного отрицательного числа, а не того, которое было присвоено.
Любая помощь будет великолепна. Я попытался найти это, но не нашел ничего похожего или полезного (IMO). Спасибо!