Использование объектов класса в другом классе - PullRequest
0 голосов
/ 30 января 2019

Я сейчас пытаюсь создать простую игру, используя ООП.Прямо сейчас я пытаюсь позволить двум игрокам в игре установить ставку на победу.

Вот как выглядит мой player.cpp на данный момент -

Player::Player() : score(0), wallet(1000) { }

void Player::setWager() {
    std::cout << "Please enter your wager." << std::endl;
    std::cin >> wager;
    wallet -= wager;
}

int Player::getWallet() {
    return wallet;
}

int Player::getWager() {
    return wager;
}

Для этого int wager, int wallet и int Score хранятся в player.h / player.cpp.

В main я использую конструктор игрока, а затем создаю ставки, как это -

int main() {
    Player p1;
    Player p2;
    p1.setWager();
    p2.setWager();
}

Теперь у меня также есть файл .h / .cpp для таблицы, в которой будет играиграл дальше.Я хочу иметь возможность взять ставки, сформированные для p1 и p2, и сохранить их в int с именем winWager в table.cpp, например (в псевдокоде) -

void Table::setWinWager() {
    winWager = p1.wager + p2.wager;
}

Конечно, int winWager удерживаетсяв табл.Как я могу взять ставки из p1 и p2 в main (или player?) И позволить их использовать для table.cpp?Я новичок в ООП, так что это сбивает с толку.Я использую C ++.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 30 января 2019

Полагаю, у вас есть в основном два варианта

Вы можете передать игроков в качестве параметров к вашему методу setWinWager

void Table::setWinWager(const Player& p1, const Player& p2) {
    winWager = p1.wager + p2.wager;
}

Или вы можете иметь в своем объекте Table два игрока в качестве членов, предположительнопередается через его конструктор.

class Table
{
public:
    Table(const Player& p1, const Player& p2); 
    void setWinWager();
private:
    Player p1;
    Player p2;
    int winwager;
};

Что правильно?Это зависит от того, что представляет собой объект Table, на который вы можете ответить только на вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...