我遇到了兩個函數的問題。我有一個operator =
方法以及一個add
方法。他們自己工作的很好,因爲在一次編譯期間我只能使用其中一個。例如,我需要註釋掉add
函數,以使operator =
方法起作用,反之亦然。這些錯誤我得到10 no match for 'operator=' in 'c = (&a)->HUGE_INT::add(((HUGE_INT&)(&b)))'
運算符=函數和添加函數似乎不能共存
HUGE_INT HUGE_INT::operator=(HUGE_INT &orig)
{
//code
return *this;
}
HUGE_INT HUGE_INT::add(HUGE_INT &a)
{
//code
return object;
}
//client
HUGE_INT a(9999999),b(1111),c,d;
c = a.add(b);
d = a;
您可以發佈描述您認爲應該編譯的錯誤代碼的最簡單示例,但不是因爲您所詢問的具體錯誤。 – 2012-02-09 04:30:42
就像我說的那樣,當客戶端中只有一個客戶端使用它時,函數可以正常工作,但是當兩個客戶端都被調用時,問題 – user1198783 2012-02-09 04:35:23
我現在看到它,add是返回一個臨時的,而operator =需要一個非const參考。你不能形成臨時的非const引用。 – 2012-02-09 04:38:54