在c++中,可以利用建構函式將乙個int型變數轉換為乙個類物件,如cmyclass aclass(5);
有人便會問,可以進行相反的轉換嗎?例如將乙個類物件轉換為乙個int值, int ntemp=aclass;
c++可以實現這一需求.但不是建構函式.建構函式只能用於某種型別到類型別的轉換.要進行相反的轉換,則需要使用過載操作符函式--轉換函式來實現.
轉換函式是使用者定義的強制型別轉換,如果定義了從cmyclass到int的轉換函式,就可以使用下面的轉換:
cmyclass aclass(5);
int ntemp=aclass;
那麼,如何建立轉換函式呢?要使用如下形式:
operator typename();
typename 指出了要轉換成的型別.因此不需要返回值.轉換函式是類方法意味著,它需要通過類物件來呼叫,從而告知函式要轉換的值,因此,函式不需要引數.
注意一下三點:1 轉換函式必須是類方法.2 轉換函式不能返回指定型別. 3 轉換函式不能有引數.
此例子中,轉換為int型別的類轉換函式原型為: operator int();
實現為cmyclass::operator int()
C 轉換函式
轉換函式分為兩種 1 自己定義的類通過轉換函式轉換為其他型別 2 其他型別通過轉換函式 類建構函式 轉換為自己定義的類 形式 1 operator typename 條件 轉換函式必須為類方法 轉換函式不能指定返回型別 轉換函式不能有引數 例子 define conv fun h include s...
c 轉換函式
1.轉換函式三要素1.轉換函式必須是類方法 2.轉換函式不能指定返回型別 3.轉換函式不能有引數 2.函式demon include using namespace std class stonewt int stone double pds left double pounds public st...
C 轉換建構函式和轉換函式
1 轉換建構函式的作用 作用 將某種型別轉換為類型別 例如有下面的 base int a 轉換建構函式 base b 物件 b 12 解析 程式將使用建構函式base int a 構造出乙個臨時的無名base物件,並用12對其初始化。然後採用逐個成員賦值的方式將該臨時物件的內容賦值給物件b。這一過程...