1、符號重載:
c++符號增加支持自定類型的操作數.實際是一個特殊函數.函數名為:
operator 符號
c++ 支持可重載符號:
算術運算符:+,-,*,/,%,++,--
位操作運算符:&,|,~,^,<<,>>
邏輯運算符:!,&&,||;
比較運算符:<,>,>=,<=,==,!=;
賦值運算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=;
其他運算符:[],(),->,,(逗號運算符)
operator new operator new[] operator delete operator delete[]
2、c++ 不支持重載的符號:
. 成員選擇
.* 通過到成員的指針做成員選擇
:: 作用域解析
?: 三元條件運算符
sizeof
3、 符號重載語法:
返回值類型 operator 符號(參數列表);
4、 符號重載特點:
1.不是創建一個新符號
2.不改變符號優先級
3.不改變符號的結合性
4.不改變符號操作個數
5、 符號重載定義兩個方式:
1.類的成員函數
2.友元函數
類的成員函數重載,如果重載符號需要兩個操作數,在定義是只需要一個參數,另一個用this代替
如果重載符號需要一個操作數,在定義是無參,用this代替
=,(),[] 和-> 只能使用成員函數方式重載
友元函數:重載符號需要幾個操作數就定義幾個參數.
>> << 只能使用友元函數方式重載
6、 前置++:即++運算符位於操作數的前面,例如:++i;
后置++:即++運算符位於操作數后面,例如:i++;
注意一下幾點:
1、前置++重載時沒有參數,而后置++重載時有參數。不會使用其參數,僅僅是區分用。
可以理解為前置++后面有參數了,所以不需要參數
2、前置++需要返回引用,因為重載自加運算符后可以返回對象的引用,
以方便在表達式中連續使用。而后置++返回的不是引用,所以不能進行連續使用。
復數:a+bi