c++ - 如何使用一个对象的方法来更新另一个对象的属性?

标签 c++ oop methods

我有三个 (C++) 类:Player、Hand 和 Card。

玩家有一个成员 hand,它持有一个 Hand。它还有一个方法 getHand(),用于返回 hand 的内容。

Hand Player::getHand() {
    return hand;
}

Hand 有一个方法 addCard(Card c),可以将一张牌添加到手上。

我想这样做:

player1.getHand().addCard(c);

但它不起作用。它不会抛出错误,所以它正在做一些事情。但是如果我事后检查 player1 手牌的内容,那张牌还没有添加。

我怎样才能让它工作?

最佳答案

如果 getHand() 按值返回,则您正在修改手的拷贝而不是原始手。

关于c++ - 如何使用一个对象的方法来更新另一个对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/113033/

相关文章:

java - 方法未返回数组的正确值。我究竟做错了什么?

ruby - 定义 block 后将其关联到方法

c++ - 使用 boost 所有 linux 发行版编译 C++

c++ - 将 C++ 模块连接到 QML - ReferenceError : <blank> is not defined

actionscript-3 - 在这个简单的例子中,如何思考 "Tell, don' t ask”?

oop - 像 Java 的 instanceof 这样的结构函数是什么?

php - 实用程序文件在 php 中?

ruby - 检查一个方法是否是 rspec 中另一个方法的别名

c++ - 编译错误 - boost::numeric::ublas::coordinate_matrix

c++ - 与 VS2013 相比,gcc 4.7.2 中的 std::map 实现效率非常低?