類型轉換函數

類型轉換函數

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

概述


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

示例


類型轉換函數的作用是將一個類的對象轉換成另一類型的數據。例如,如果已聲明了一個Complex類,可以在Complex類中這樣定義類型轉換函數 :
operator double()
{
return m_dReal;
}
函數返回double型變數m_dReal的值. 它的作用是將一個Complex類對象轉換為一個double型數據,其值是Complex類中的數據成員m_dReal的值.
使用類型轉換函數的簡單例子
using namespace std;
class Complex
{
public:
Complex();
Complex(double dReal,double dImag);
operator double();
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="<
return 0;
}
如果在Complex類中沒有定義類型轉換函數operator double, 程序編譯將出錯. 因為不能實現double型數據與Complex類對象相加. 現在,一定了成員函數operator double, 就可以利用它將Complex類對象轉換為double型數據. 請注意 : 程序中不必顯式地調用類型轉換函數,它是自動被調用的,即隱式調用.
  • 目錄