類型轉換函式

類型轉換函式是指用轉換構造函式可以將一個指定類型的數據轉換為類的對象。

概述,示例,

概述

類型轉換函式(type conversion function)可以將一個類的對象轉換為一個指定類型的數據.
類型轉換函式的一般形式為 :
operator 類型名()
{實現轉換的語句}
在函式名前面不能指定函式類型,函式沒有參數.
請注意 : 函式名是 : operator double 這點是和運算符重載時的規律一致的.

示例

類型轉換函式的作用是將一個類的對象轉換成另一類型的數據.例如,如果已聲明了一個Complex類,可以在Complex類中這樣定義類型轉換函式 :
operator double()
{
return m_dReal;
}
函式返回double型變數m_dReal的值. 它的作用是將一個Complex類對象轉換為一個double型數據,其值是Complex類中的數據成員m_dReal的值.
使用類型轉換函式的簡單例子
#include <iostream>
using namespace std;
class Complex
{
public:
Complex();
Complex(double dReal,double dImag);
operator double();
private:
double m_dReal;
double m_dImag;
};
Complex::Complex()
{
m_dReal = 0;
m_dImag = 0;
}
Complex::Complex(double dReal,double dImag)
{
m_dReal = dReal;
m_dImag = dImag;
}
Complex::operator double()
{
return m_dReal;
}
int main()
{
Complex obj(3,4);
double dNum = 0.0;
dNum = 2.5 + obj;
cout<<"dNum="<<dNum<<endl;//dNum=5.5
return 0;
}
如果在Complex類中沒有定義類型轉換函式operator double, 程式編譯將出錯. 因為不能實現double型數據與Complex類對象相加. 現在,一定了成員函式operator double, 就可以利用它將Complex類對象轉換為double型數據. 請注意 : 程式中不必顯式地調用類型轉換函式,它是自動被調用的,即隱式調用.

相關詞條

熱門詞條

聯絡我們