持つ
struct Person {
string name;
};
Person* p = ...
オーバーロードされた演算子はないと仮定します。
どちらがより効率的ですか (もしあれば)?
(*p).name
対。 p->name
頭の後ろのどこかで、*
逆参照演算子がオブジェクトの一時的なコピーを作成する可能性があるというベルが鳴っているのが聞こえます。これは本当ですか?
この質問の背景には、次のようなケースがあります。
Person& Person::someFunction(){
...
return *this;
}
Person*
そして、結果を に変更し、最後の行を に変更するだけreturn this
で (パフォーマンスに) 違いが生じるのではないかと考え始めました。