# re: 關于資源和操作符重載疑問 回復 更多評論
2006-04-22 00:38 by
+操作符返回一個臨時對象,不要去new,返回類型不是引用類型,剩下的就好寫了。
# re: 關于資源和操作符重載疑問 回復 更多評論
2006-04-22 00:56 by
=操作符一般還要返回該對象的引用。+操作符最好寫成全局的,不要作為成員函數,好處下面解釋。另外代碼似乎充滿了C?;騄AVA代碼風格,錯誤很多,還是先搞清C++語法再做吧,每種語言都有它的特色。我簡單整理了一下:
class SimpleClass
{
friend SimpleClass operator + (const SimpleClass& lhs, const SimpleClass& rhs);
public :
SimpleClass(int value = 0);
SimpleClass& operator = (const SimpleClass& right);
int m_iValue;
} ;
SimpleClass::SimpleClass(int value)
:m_iValue(value)
{
}
SimpleClass& SimpleClass::operator = (const SimpleClass& right)
{
m_iValue = right.m_iValue;
return *this;
}
SimpleClass operator + (const SimpleClass& lhs, const SimpleClass& rhs)
{
return SimpleClass(lhs.m_iValue + rhs.m_iValue);
}
int main()
{
SimpleClass sc1( 1 );
SimpleClass sc2( 2 );
SimpleClass sc3;
sc3 = sc1 + sc2;
sc3 = sc1 + 1;
sc3 = 1 + sc1;
return 0 ;
}
上面所說的好處就是,sc3 = sc1 + 1; 和sc3 = 1 + sc1這2個都可以成立了,如果寫成成員函數,則后一個不能編譯。
# re: 關于資源和操作符重載疑問 回復 更多評論
2006-04-23 20:41 by
多謝大哥了,呵呵
這段代碼是隨手寫的,也沒仔細校驗了。要不斷學習啊!呵呵