関数内のオブジェクトを変更する

私は2つのパラメータ、両方のオブジェクトを持つ関数を持っています。私は関数内でこれらのオブジェクトを変更し、後でその変更を見る必要があります。しかし、ポインタは機能しません。何か案が?

void foo(apple &a,apple &b)
{
  //change a and b
}
main()
{
  apple a,b;
  foo(a,b);
  //a and b are the same as befor calling foo  `  
}

ありがとう。

1
ポインタも同様に機能するはずです
追加された 著者 Adrian Cornish,
問題を示す実際のコンパイル可能なコードを投稿してください。オブジェクトへの参照を渡す原則は正しいはずです。
追加された 著者 Oliver Charlesworth,
メソッド内でこのオブジェクトをどのように "変更"していますか?
追加された 著者 madth3,

1 答え

Do you mean changing the methods of the classes you're passing? You'll need to use '->' if that's what you mean.

class apple {
    public:
        int weight; 
}

void foo(apple *a,apple *b) {
    a->weight = b->weight;
}

main() {
    apple a,b;
    foo(&a,&b);
}
1
追加された
どうもありがとうございました。出来た。
追加された 著者 Pegah,