コンストラクターパラメーターを渡すための推奨される方法はありますか?特に、これらのコンストラクターパラメーターを使用してメンバー変数を初期化する場合。
簡略化した例。
class Example
{
public:
Example( /*type-1*/ str, /*type-2*/ v ):
m_str( str ),
m_v( v )
{ }
/* other methods */
private:
std::string m_str;
std::complex<float> m_v;
};
オプションは次のとおりです。
- 値渡し、次に
std::move
オブジェクトをメンバーに渡します。 const&
、次にパラメータをメンバーにコピーします。&&
、次に、パラメーターを使用してメンバーを初期化します。
デフォルト/優先パラメータの受け渡しスタイルはどうあるべきですか?
異なるパラメータタイプで変化しますか?
私の直感では、右辺値参照を使用すると言っていますが、すべての長所と短所を理解しているかどうかはわかりません。