4 回答

胡說叔叔
TA貢獻1804條經(jīng)驗 獲得超8個贊
假設(shè)有個類A,如下語句:A a;A b=a;
這時候的復(fù)制運算符會起作用,而且是以成員函數(shù)被調(diào)用的,等價于b.operate=(a)。如果不是成員函數(shù),那么不能這樣使用。另外,必須重載說法是有問題的,只有類里面有指針成員的時候才需要重載

撒科打諢
TA貢獻1934條經(jīng)驗 獲得超2個贊
class object如果實現(xiàn)了成員operator<< ,調(diào)用其對象格式o<<cout; 是不是很亂。重載運算符為成員函數(shù)后,當調(diào)用該運算符時,左操作數(shù)必須是該類的實例。友元函數(shù) 流參數(shù)定義第一個參數(shù).才能調(diào)用cout<<obj;而成員函數(shù)流參數(shù)不是第一個參數(shù),調(diào)用時應(yīng)該是obj<<cout;
雖然不能“重載”為成員函數(shù),但是可以定義為新的成員函數(shù),只不過使用習慣和常例不符而已。

泛舟湖上清波郎朗
TA貢獻1818條經(jīng)驗 獲得超3個贊
class T;
T t;
成員的話,得這么用了
t<<cout;
而不是
cout<<t
而且也無法鏈式使用了
cout<<t<<t<<t<<endl;
添加回答
舉報
0/150
提交
取消