0

クラスは、 type のあるオブジェクトから type の別のオブジェクトにTすべてではなく一部のメンバー変数 (最小限の例: 1 つの variable のみX)をコピーするメンバー関数を提供する必要があります。からのコピーとへのコピーの 2 つの解決策が考えられます。TT

class T {
    some_type X;
    [...]
    void copy_X_from_other( const T& other ) { X = other.X; }
    void copy_X_to_other  ( T& other ) const { other.X = X; }
};

あるバリアントを他のバリアントよりも優先する理由はありますか? ガイドライン、ベスト プラクティスの例などはありますか?

関数の名前はどのように付けるべきですか? 理想的な名前は よりもはるかに短いですcopy_(from|to)_otherが、コピーの方向について疑いの余地はありません。

4

1 に答える 1

0

1 つのプロパティだけをコピーしようとするのは非常に奇妙なことですが、私はそれを疑問視する人ではありません。

なぜそうしないのですか:

void copy_<property_name>( const T& other ) { <property_name> = other.get_<property_name>; }

これは、次のように定義されているコピー割り当ての標準に従います。

T& operator=(const T& other)
{
    //copy
    //return
}

ご覧のとおり、受信側はこれでも左側にあります。

それ以外には、別のオブジェクトの 1 つのプロパティだけをコピーしようとする基準はないと思います。

于 2016-01-07T12:23:43.507 に答える