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.只能通過成員函式過載的運算子 限制說明 ...