class myMem{};
class Test{
public:
initMem1(myMem& mInput){/*initialize _mem1*/}
initMem2(shared_ptr<myMem> &pmInput){/*initialize _mem2*/}
myMem _mem1;
shared_ptr<myMem> _mem2;
};
Test myTest;
myTest()
したがって、上記のコードでは、メンバーはクラスに属しています。 1つのメンバは値型であり、別のメンバはshared_ptr型です。どのようにして授業のメンバーにとって良いですか?また、メンバを初期化する関数もあります。どちらの方が良いですか?shared_ptrへの参照渡しの利点は、直接参照を渡すことです。
一般的に、shared_ptrへの参照渡しが直接参照渡しの利点は何ですか?
...あなたには 'shared_ptr'が必要ですか? – GManNickG
質問は次のようにする必要があります: "shared_ptr"への参照を渡して、値を直接shared_ptrに渡すことの利点は何ですか?答えは:それはより安いでしょう。 – tkausl
コンパイラには、どちらも異なる種類です。あなたは本当にリンゴとオレンジを比較することはできません。 ** 'Test&' **と** 'shared_ptr&' **は同じ*参照型ではありません。前者を後者から取得するためのパフォーマンスコストは、おそらく単なる間接的なコストです。しかし、後者はもう少し情報を持っています –
WhiZTiM