用途:將乙個其它型別的資料轉換成自定義的類型別。
注意:這種建構函式只有乙個引數,但要區別於拷貝建構函式(形參是乙個自定義型別的引用)
例子:
#include
using namespace std;
class complex
//這個預設的建構函式便可以充當 轉換建構函式
complex(double r=0, double i=0):real(r),imag(i){}
// complex(double d):real(d), imag(0)
friend complex operator+(const complex &, const complex &);
friend ostream &operator
<<(ostream &out, complex &t);
private:
double real;
double imag;
};ostream &operator
<<(ostream &out, complex &c)
complex operator+(const complex &c1, const complex &c2)
int main()
用途:將乙個自定義類物件轉換為int , double , float 以及其它類型別. 如:
double b = 2.1;
complex(乙個類名) c1;
b = c1;
注意:這個函式需要宣告成類的成員函式
仍然借用上面的類形式如下
operator 型別名()
//加到上面的類中
operator
double()
int main()
!! 當上面兩種函式,以及與操作符過載函式一起使用時,容易歧義
型別轉換函式 轉換建構函式
用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 include using namespace std class complex 這個預設的建構函式便可以充當 轉換建構函式 complex double r ...
型別轉換建構函式
include stdafx.h include using namespace std include 用型別轉換建構函式進行型別轉換 class point2d friend class point3d 設定友元類 private int x int y class point3d if 0 我...
型別轉換建構函式
在c 中型別轉換建構函式有兩種,有隱式轉換和顯式轉換兩種,顯式轉換為強制型別轉換,具有一定的風險。型別轉換建構函式 乙個類的構造函式引數只有乙個引數,並且這個引數不是該類的型別而是其他型別,這個建構函式 就被稱為型別轉換建構函式。函式的定義 由函式名 引數 返回值型別以及一組包含操作語句的語句塊組成...