【问题标题】:C++ getters and setters not passing variablesC++ getter 和 setter 不传递变量
【发布时间】:2026-01-29 02:10:01
【问题描述】:

在以下两行代码中,它应该获取玩家的名称,然后将该名称设置为属性的所有者。当我运行它时,它只是输出“所有者:”

player.cpp

gb.getProperty(position).setOwner(name);
cout << "Owner: " << gb.getProperty(position).getOwner() << endl;

它应该打印轮到它的玩家的名字,我已经检查过这个名字是否正确,所以我相信它是所有者的 getter 和 setter: 这是我的所有者的getter和setter,我在这里做错了吗?

board.h

class properties {

public:

    string getOwner() { return owner; }
    void setOwner(string o) { owner = o; }

private:

    string owner;
};

我的所有文件都已正确连接,非常感谢任何帮助

【问题讨论】:

  • name 是否正确初始化?
  • getProperty 是如何实现的?请提供minimal reproducible example
  • 我的猜测是getProperty 返回一个副本而不是引用
  • 在类属性的公共部分由'string getProperty() {return name;}'和'string name'在私有部分初始化

标签: c++ class object getter setter


【解决方案1】:

虽然您的代码不可重现,但我猜您的 getProperty 返回的是值而不是引用。将其更改为参考可能会解决您的问题。

【讨论】:

    最近更新 更多