複製鏈接
請複製以下鏈接發送給好友

類型轉換函數

鎖定
類型轉換函數,編程學科術語。
中文名
類型轉化函數
外文名
type conversion function
所屬學科
編程
C++

目錄

類型轉換函數定義

類的類型轉化函數是用户定義的強制類型轉化,可以將類類型轉化為其他類型
operator數據類型( )
operator int ( )
注意事項
轉換函數必須是類方法
轉換函數不能指定返回類型
轉換函數不能有參數
不能將其他類型轉化為本類型

類型轉換函數數據簡介

類型轉換函數(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型數據. 請注意 : 程序中不必顯式地調用類型轉換函數,它是自動被調用的,即隱式調用.