我有以下代碼:運算符重載==和=:編譯呻吟歧義
bool operator==(const Inc::CReminderItem& Item1, const Inc::CReminderItem& Item2)
{
bool bDate = false, bDesc = false, bInfo = false, bWeekday = false;
if(Item1.m_Date == Item2.m_Date)
bDate = true;
if(Item1.m_strDescription == Item2.m_strDescription)
bDesc = true;
if(Item1.m_strInfoShort == Item2.m_strInfoShort)
bInfo = true;
if(Item1.m_nWeekday == Item2.m_nWeekday)
bWeekday = true;
return(bDate && bDesc && bInfo && bWeekday);
}
bool operator!=(const Inc::CReminderItem& Item1, const Inc::CReminderItem& Item2)
{
return !(Item1 == Item2); // <<--- ambiguous here!
}
兩個運營商都宣佈在類的朋友經營。
的錯誤是:
錯誤C2593: '運算==' 是 曖昧
我不知道,爲什麼它是曖昧O_O以及如何解決這個問題。 任何幫助是極大的讚賞:)
編譯器應該告訴你像*可能的候選人是...... *。否則,也許存在一個成員函數,或者你有'CReminderItem'的一些隱式轉換? – 2011-05-12 09:42:12
是否說哪些是可能導致歧義的候選人? – Naveen 2011-05-12 09:42:52
有沒有可能的候選人,也不應該有任何明顯的轉換(visual studio 2010) – Incubbus 2011-05-12 11:47:17