在另一个类中使用类对象

时间:2019-01-29 23:13:16

标签: c++ function class

我目前正在尝试使用OOP创建一个简单的游戏。现在,我正在尝试让游戏中的两个玩家各自下注赢。

这是我的player.cpp当前的样子-

function sortComments() {
    $("#sort_comments").on("click", function (e) {
        e.preventDefault();
        var id = this.dataset.linkid
        fetch(`/links/${id}/comments.json`)
          .then(r => r.json())
          .then(comments => 
             comments.sort(({body: a}, {body: b}) => a.localeCompare(b))
          );
    };
}

为此,int投注,int钱包和int分数存储在player.h / player.cpp中。

在main内部,我使用玩家构造函数,然后像这样创建下注-

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;
}

现在,我也有一个.h / .cpp文件,用于播放游戏的桌子。我希望能够采用为p1和p2形成的下注,并将它们存储到table.cpp中名为winWager的int中,就像(在伪代码中)-

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

当然,int winWager被保存在table.h中。我该如何在main(或player?)中从p1和p2进行下注并将其用于table.cpp?我是OOP的新手,所以这一直令人困惑。我正在使用C ++。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我猜你基本上有两种选择

您可以将玩家作为参数传递给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对象代表什么,实际上这只是您可以回答的问题。