0

何らかの理由で、代入演算子を使用しようとするとバスエラーが発生します。

hand1 = hand2;


//overload assignment operator
Hand Hand::operator=(Hand other_hand)
{

    if(&other_hand != this){
        name = other_hand.name;
        cards = other_hand.cards;

    }

    return *this;   
}

エラーは return ステートメントの直後に発生します

4

1 に答える 1

1

まず、割り当てには次のような署名が必要です。

Hand & Hand::operator=(const Hand &other_hand)

おそらく、指摘されたようにコピーを渡したり返したりしたくないでしょうが、チェーンの操作を許可したい場合もあります。

hand1 = hand2 = hand3 ....

これは基本的なリファレンスです。コピーとスワップについても言及されていましたが、この前のスレッドはそれを説明するのに完璧な仕事をしています.

于 2013-03-04T01:41:05.477 に答える