運算符重載的規則如下: 1、C++中的運算符除了少數幾個之外,全部可以重載,而且只能重載C++中已經有的運算符。 2、重載之後運算符的優先順序和結合性都不會改變 3、運算符重載是針對新類型數據的實際需要,對原有運算符進行適當的改造,一般來講,重載的功能應當與原有功能相類似,不能改變原運算符的操作對象個 ...
運算符重載的規則如下:
1、C++中的運算符除了少數幾個之外,全部可以重載,而且只能重載C++中已經有的運算符。
2、重載之後運算符的優先順序和結合性都不會改變
3、運算符重載是針對新類型數據的實際需要,對原有運算符進行適當的改造,一般來講,重載的功能應當與原有功能相類似,不能改變原運算符的操作對象個數,同時至少要有一個操作對象是自定義類型。
註意:不能重載的運算符只有5個,它們是類屬關係運算符“.”、成員指針運算符“.*”、作用域分辨符“::”、sizeof運算符和三木運算符“?:”。前面兩個運算符保證了C++中訪問成員功能的含義不被改變。作用域分辨符和sizeof運算符的操作數是類型。
4、 運算符的重載形式有兩種,重載為類的成員函數和重載為類的友元函數。
- 運算符重載為類的成員函數的一般語法形式為:
函數類型 operator 運算符(形參表)
{
函數體
}
- 運算符重載為類的友元函數,可以在類中聲明友元函數的原型,在類外實現,也可以在類體中實現