C++ C++;使用成员对象的Setter

C++ C++;使用成员对象的Setter,c++,class,setter,C++,Class,Setter,我目前正在使用类和对象进行我的第一个项目,我的setter遇到了一些障碍。我编了一个例子来说明我遇到的问题(为了简单起见,所有文件都是一个文件) 我们的想法是通过使用成员对象的setter方法来更改示例2中的成员对象,但是setter方法似乎没有按照我预期的方式工作 我尝试通过将成员移动到public(在示例2中)并使用点表示法来访问该成员,这成功地更改了名称。我不确定区别是什么,但是,由于getter工作正常,我觉得我使用setter的方式有问题 我试图解决的最初问题是,有一个带有玩家类成员对

我目前正在使用类和对象进行我的第一个项目,我的setter遇到了一些障碍。我编了一个例子来说明我遇到的问题(为了简单起见,所有文件都是一个文件)

我们的想法是通过使用成员对象的setter方法来更改示例2中的成员对象,但是setter方法似乎没有按照我预期的方式工作

我尝试通过将成员移动到public(在示例2中)并使用点表示法来访问该成员,这成功地更改了名称。我不确定区别是什么,但是,由于getter工作正常,我觉得我使用setter的方式有问题

我试图解决的最初问题是,有一个带有玩家类成员对象的游戏类。这个想法是,玩家可以改变他们的名字,如果他们想


谢谢你的帮助。谢谢。

您的所有getter都返回一个新对象。不要。让他们返回一个常量&。但在修改对象以调用setter时,需要一个非常量getter:

const Example1& GetObj() const;
Example1& GetObj();
现在,存储在下面的对象将被更新,而不仅仅是它们的副本。字符串也一样


你也可以看到,调试器不使用调试器来处理正确的对象。

抓取你的C++选择书,阅读关于“按引用返回”/“按价值返回”的章节。.Handy reading(方便阅读):看看3分钟的格式化能让你的代码读起来有多容易?为什么你要用初始化列表来显示
Example2::anObj
,而不是
Example1::name
?@LightnessRacesinOrbit这是4.2分钟。
Mike 
Mike
const Example1& GetObj() const;
Example1& GetObj();