由于某种原因,当我尝试使用它时,我的赋值运算符会产生总线错误:
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语句
之后答案 0 :(得分:1)
首先,作业应该有一个如下所示的签名:
Hand & Hand::operator=(const Hand &other_hand)
您可能不希望按照指出传递和返回副本,但您也希望允许操作链接,例如:
hand1 = hand2 = hand3 ....
这是basic reference。还提到了复制和交换,这个previous thread完美地解释了它。