第十四章 過載操作符與轉換

2021-06-15 09:21:16 字數 442 閱讀 5614

第十四章 過載操作符與轉換

1、過載操作符

保留字operator後接需定義的操作符符號

過載操作符不能重新定義用於內建型別物件的操作符,至少有乙個類型別或列舉型別

操作符定義為非成員函式時,必須設定為所操作類的友元

2、輸入和輸出操作符

輸出操作符應輸出物件的內容,進行最小限度的格式化

輸入操作符必須處理錯誤和檔案結束的可能性

3、算數操作符和關係操作符

加法返回乙個右值,而不是乙個引用

4、賦值操作符

返回值通常是左運算元的引用

5、下標操作符

必須定義為類成員函式

6、轉換與類型別

轉換函式必須是成員函式,不能指定返回型別,並且形參表必須為空

轉換操作符通常定義為const成員

完全匹配轉換比需要標準轉換的其他轉換更好

C Primer 第十四章 過載操作符與轉換

14.1 過載操作符的定義 操作符 可以被內建型別使用,比如兩個整數相加或相減,兩個字串相加,兩個陣列比較大小等等。自定義類預設是不能使用大多數操作符的。自定義類是復合型別,相加或想減或比較大小並沒有相應的規則匹配 兩個類相加等於什麼?兩個類如何確定誰大誰小?c 允許我們通過過載運算子的技術讓自定義...

第十四章 過載操作與轉換 一

1 這4個符號不能過載 2 過載操作必須有乙個類型別的運算元 強制過載操作符不能重新定義在已有的內建型別中 3 優先順序和結合性是固定的 4 過載後 不再具有短路求值特性 1 必須作為非成員函式 2 輸出 ostream operator ostream os,const classtype obj...

第十四章 過載操作與轉換 二

14.9 轉換與類型別 1 轉換操作符 例子 class smallint operator int const 沒有返回型別,沒有引數列表,const型別 private stad size t val 2 只要存在轉換,編譯器就會在內建轉化的地方就會自動應用之,所以一般乙個類中乙個型別轉換就足夠...