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