Java では、適切なオブジェクトを含むすべての変数は実際には参照 (つまりポインター) です。したがって、これらのオブジェクトを引数とするメソッド呼び出しは、常に「参照渡し」です。オブジェクトの状態を変更するメソッドを呼び出すと、元のオブジェクト (呼び出し側) にも影響します。
C++ は異なります。ここでは、引数を値渡しまたは参照渡しできます。値渡しされたオブジェクトで mutator メソッドを呼び出しても、元のオブジェクトは影響を受けません。(値による呼び出しはオブジェクトのローカルコピーを作成すると思います)。
したがって、これに対する私の最初の応答 (Java から C++ への移行) は、オブジェクトを引数として使用するときは常にポインターを使用することです。これにより、私が Java に期待するようになった動作が得られます。
ただし、メソッド本体でオブジェクトを変更する必要がない場合は、「値による呼び出し」を使用することもできます。これをやりたい理由はありますか?