型別轉換 運算子過載

2021-09-07 09:50:31 字數 699 閱讀 2432

c++中沒有返回型別的函式有3個,建構函式、析構函式、型別轉換函式。

operator const char *() const

如果是過載*的話,那應該寫成:const char operator * () const而上面所寫的那樣,而且即使是這樣寫那也不正確的,

因為運算子過載中有幾個運算子的返回值是有格式的(約定),如operator * 在過載時通常返回值是classtype&或者const classtype& 。

operator const char*() const是型別轉換函式的定義,即該型別可以自動轉換為const char*型別。至於最後乙個const,

那個大家都知道是對類成員的限制(不允許更改物件的狀態)。

型別轉換運算子,只要你把***物件隱式或者顯式轉換為t物件時,它都會被自動呼叫。

#includeusing

namespace

std;

//型別轉換運算子過載,只要你把***物件隱式或者顯式轉換為t物件時,它自動被呼叫

template

class

transfer

operator t() const

private

:

inti;

};

intmain()

過載 型別轉換與運算子

轉換建構函式和型別轉換運算子共同定義了類型別轉換 class type conversions 型別轉換運算子 型別轉換運算子是類的一種特殊成員函式,它負責將乙個類型別的值轉換成其他型別。型別轉換函式的一般形式如下所示 operator type const 其中type表示某種型別。型別轉換運算子...

C 型別轉換運算子過載

在c 中有乙個特殊的運算子過載方法 型別轉換運算子過載,形如 operator type code class cdemo operator int private int x int y code int tmain int argc,tchar argv 執行結果 即 x的值,int 對demo...

過載 型別轉換與運算子

前面我們看到由乙個實參呼叫的非顯式建構函式定義了一種隱式的型別轉換,這種建構函式將實參型別的物件轉換成類型別。我們同樣能定義對於類型別的型別轉換,通常定義型別轉換運算子可以做到這一點。轉換建構函式和型別轉換運算子共同定義了類型別轉換,這樣的轉換有時也被稱作使用者定義的型別轉換。型別轉換運算子 型別轉...