重载分配操作员总线错误

时间:2013-03-03 01:38:57

标签: c++

由于某种原因,当我尝试使用它时,我的赋值运算符会产生总线错误:

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语句

之后

1 个答案:

答案 0 :(得分:1)

首先,作业应该有一个如下所示的签名:

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

您可能不希望按照指出传递和返回副本,但您也希望允许操作链接,例如:

hand1 = hand2 = hand3 ....

这是basic reference。还提到了复制和交换,这个previous thread完美地解释了它。