友元運算符函數和成員運算符函數有什麼不同?
1、運算符函數可以定義爲它將要操作的成員,稱爲成員運算函數。定義爲類的友元函數,稱爲友元運算函數。
2、雙目運算符成員運算符函數帶一個參數,第一個操作數被隱含,友元運算符函數帶兩個參數。單目運算符而言成員運算符函數不帶參數,操作數被隱含,友元運算符帶一個參數。
3、雙目運算符一般情況,可被重載爲友元運算符函數或成員運算符函數。但在一種情況下,當雙目運算符的左操作數是一個基本數據類型,而右操作數是一個類類型時,則必須使用友元函數。
4、成員運算符函數和友元運算符函數可以用習慣方式調用,也可以用它們專用的方式調用。
5、大部分運算符既可以聲明爲成員運算符,也可以聲明爲友元運算符。雙面,友元比成員方便;單目,成員。“=,(),[],->”,只能時成員。“+=,-=,/=,*=,&=,!=,~=,%=,>>=,<<=”,建議成員,其它則建議爲友元。