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

2021-05-24 05:38:24 字數 389 閱讀 6092

14.9 轉換與類型別

1) 轉換操作符

例子:

class smallint

operator int() const //沒有返回型別,沒有引數列表,const型別

private:

stad::size_t val;

}; 2)  只要存在轉換,編譯器就會在內建轉化的地方就會自動應用之,所以一般乙個類中乙個型別轉換就足夠了

3)  型別轉換之後不能再跟乙個型別轉換,標準轉換可以在型別轉換前進行.

4)  當出現二義性的問題的時候最好進行顯式的型別轉換或顯式的呼叫建構函式.

所謂二義性,就是指提供的資訊太少(隱式),不足以區分,所以只要顯式呼叫就足以解決這個問題了.

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

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

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

第十四章 過載操作符與轉換 1 過載操作符 保留字operator後接需定義的操作符符號 過載操作符不能重新定義用於內建型別物件的操作符,至少有乙個類型別或列舉型別 操作符定義為非成員函式時,必須設定為所操作類的友元 2 輸入和輸出操作符 輸出操作符應輸出物件的內容,進行最小限度的格式化 輸入操作符...

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

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