【发布时间】:2019-01-29 23:13:15
【问题描述】:
我目前正在尝试使用 OOP 创建一个简单的游戏。现在,我正在尝试让游戏中的两名玩家各自下注以获胜。
这是我的 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 赌注、int wallet 和int score 存储在 player.h/player.cpp 中。
在 main 中,我使用玩家构造函数,然后像这样创建赌注 -
int main() {
Player p1;
Player p2;
p1.setWager();
p2.setWager();
}
现在,我还有一个用于玩游戏的桌子的 .h/.cpp 文件。我希望能够接受为 p1 和 p2 形成的赌注,并将它们存储到 table.cpp 中名为 winWager 的 int 中,例如(在伪代码中)-
void Table::setWinWager() {
winWager = p1.wager + p2.wager;
}
当然,int winWager 保存在 table.h 中。如何从 main(或玩家?)中的 p1 和 p2 下注,并让它们用于 table.cpp?我是 OOP 的新手,所以这很令人困惑。我正在使用 C++。感谢您的帮助。
【问题讨论】:
-
那是你给
getWager()打的电话,我看不出这里有问题。 -
@MatthieuBrucher getWager() 仅产生每个玩家对象的单一投注。我试图从每个玩家对象中获取单个赌注,然后将它们放入 table.cpp 中的一个整数,这是两个玩家赌注的总和。
-
winWager = p1.getWager() + p2.getWager();但是你有什么问题?使用包含标头? -
@MatthieuBrucher 它说当我尝试编译时它没有在范围内声明,我正在添加“player.h”。
-
然后通过引用传递它们(将它们设为 const,并使 getter 也设为 const)。