運算子的過載

2021-10-04 08:05:03 字數 484 閱讀 1716

可過載的運算子超級多,這裡就列舉下不能過載的算符好了。

不能過載的算符有:

. :: .* ?: sizeof

過載自增自減運算子的時候,如果是前置的自增自減,那麼呼叫的是operator ++(或–)()

如果是後置的,那麼呼叫的是operator ++(或–)(int)

過載=運算子時,類中 沒有指標成員 不需要過載=運算子,預設的淺拷貝就可以完成。類中 有指標成員 必須過載=運算子

指標作為類的成員:

1、拷貝建構函式 必須自定義(預設拷貝構造 是淺拷貝)

2、必須過載=運算子 (預設=號運算子 是淺拷貝)

&&和||是不該過載的,因為使用者無法實現與或的短路特性。

&& 短路特性: a && b 如果a為假 b將不會執行

|| 短路特性: a || b 如果a為真 b將不會執行

=,,()和->操作符只能通過成員函式進行過載 《和》只能通過全域性函式配合友元函式進行過載。

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

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個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.只能通過成員函式過載的運算子 限制說明 ...