第十四章 過載操作符與轉換
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 只要存在轉換,編譯器就會在內建轉化的地方就會自動應用之,所以一般乙個類中乙個型別轉換就足夠...