簡介
在C++中,類型轉換運算符(也稱為類型轉換函數或轉換函數)是一種特殊的成員函數,它允許將一個類類型的對象轉換為其他類型。轉換運算符的聲明形式如下:
operator type() const;
關鍵點
-
??聲明??:在類內部聲明,沒有返回類型(因為
type
已經表示了返回類型),沒有參數。 -
??const??:通常聲明為const,因為它不應該修改對象。
-
??隱式調用??:編譯器可以在需要類型
type
的地方自動調用該轉換函數,這可能導致意料之外的類型轉換。因此,有時候需要避免隱式轉換。
示例
class MyInt {int value;public:MyInt(int v) : value(v) {}// 轉換運算符:將MyInt轉換為intoperator int() const {return value;}
};int main() {MyInt mi(10);int n = mi; // 隱式調用operator int()int m = static_cast<int>(mi); // 顯式調用
}