我有一个方法,以对象作为参数.
调用者和参数都具有相同的成员(它们是同一个类的实例).
在该方法中,比较特定成员,然后,基于此比较,需要操纵参数对象的一个成员:
class Object {
// members
public:
someMethod (object other) {
int result;
member1 - other.member1 = result;
other.member2 = other.member2 - result;
}
Run Code Online (Sandbox Code Playgroud)
唯一的事情是它实际上并没有将other.member2改变到这个范围之外,并且变更需要是永久性的.
所以是的,对不起:我需要有关指针的建议......我已经在网上和书中看过,但我无法让它发挥作用.我想其中一个人会看到这个,并在大约30秒内知道答案.我有RFTM而且是一个愚蠢的损失.我不鼓励.
感谢大家!
这是因为你正在通过价值(相当于传递副本.想想它是为了让某人成为文件的复印件然后要求他们进行更改,你仍然拥有原件,所以他们所做的改变将不会被反映出来在你的副本中找回它.但是,如果你告诉他们你的副本所在的位置,他们可以去更改它,你将在下次访问时看到它).您需要传递对象的引用
Object& object
Run Code Online (Sandbox Code Playgroud)
或指向对象的指针
Object * object
Run Code Online (Sandbox Code Playgroud)
查看此页面以了解差异的讨论.