標頭檔案的包含及運算子過載

2021-06-01 09:30:02 字數 723 閱讀 4147

1、標頭檔案中盡量使用前置宣告,減少依賴,減少標頭檔案的修改引起重新編譯的**量,使用前置宣告時可做下列操作:

1)宣告某類的指標與引用的變數;

2)函式宣告可使用某類做為返回型別;

3)可宣告某類的靜態變數,因為靜態變數的定義在類定義之外。

2、標頭檔案的包含順序(減少依賴):

1)某實現檔案相應標頭檔案;

2)c 系統檔案;

3)c++ 系統檔案;

4)其他庫的 .h

檔案;5)本專案內 .h

檔案。3、運算子過載

1)所有的一元運算子建議使用成員函式方式過載;

2)=, (), , -> 必須使用成員函式方式過載,編譯器強制運算子『+』為成員函式;

3)+=、-=、/=、*=、^=、&=、|=、%=、>>=、<<= 建議使用成員函式方式過載;

4)其它二元運算子建議使用非成員函式方式過載,成員函式將限制左運算元的型別,非成員函式則可對左運算元進行型別轉換;

5)., .*, :? 不可過載,『.' 如果被過載,就不能用普通方式訪問成員了,'.*『 與是同樣的原因。

4、自動型別轉換

1)建構函式轉換與運算子轉換,建構函式是目的型別實現轉換**,運算子轉換則是源型別實現轉換**;

運算子轉換宣告 operator 後跟想到轉換到的型別:operator type() consta {}。

2)多種轉換使用編譯器產生乙個不明指示的錯誤,以及一些隱藏行為。

運算子過載 賦值運算子的過載

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...

運算子過載 類的賦值運算子過載

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...

運算子過載限制 不能過載的運算子

1.過載後的運算子必須至少有乙個操作符是使用者定義的型別。2.使用運算子不能違反運算子原來的句法規則。3.不能新建運算子 4.不能過載 sizeof const cast,dynamic cast,reinterpret cast,static cast 5.只能通過成員函式過載的運算子 限制說明 ...