C++ getter 和 setter 不传递变量
Posted
技术标签:
【中文标题】C++ getter 和 setter 不传递变量【英文标题】:C++ getters and setters not passing variables 【发布时间】:2020-04-20 11:54:10 【问题描述】:在以下两行代码中,它应该获取玩家的名称,然后将该名称设置为属性的所有者。当我运行它时,它只是输出“所有者:”
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'在私有部分初始化
【参考方案1】:
虽然您的代码不可重现,但我猜您的 getProperty
返回的是值而不是引用。将其更改为参考可能会解决您的问题。
【讨论】:
以上是关于C++ getter 和 setter 不传递变量的主要内容,如果未能解决你的问题,请参考以下文章
定义了 getter 和 setter 且没有后备变量的变量叫啥?
成员变量/方法/ getter和setter是否可以包含在一个公共访问修饰符中?