發生在例如對象賦給int或者int賦給對象的場合下。
1、int等賦給對象
任何接收唯一一個參數(或者其它有默認參數,只剩一個未知參數)的構造函數都可被用作轉換函數,將類型與該參數相同的值轉換為類。如果將類型與該參數相同的值賦給對象,則C++自動調用該構造函數,稱隱式轉換。可以在構造函數前加關鍵字explict,關閉這種特性,只允許顯式轉換(即(類)這樣的轉換,類似于普通類型的強制轉換)。
2、對象賦給int等
需要定義轉換函數,轉換函數必須是成員函數,原型如下:
Operator typeName();
其沒有返回類型,沒有參數,但必須返回轉換后的值(雖然沒有聲明返回類型)。例如:
operator int() const;
使用的時候可顯式或隱式,但經驗表明,最好不要依賴于這種隱式轉換函數。
新聞熱點
疑難解答