C 轉換函式

2021-09-30 11:39:23 字數 590 閱讀 1105

在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。這一過程...