c 型別轉換建構函式

2021-10-02 12:32:42 字數 986 閱讀 7007

定義轉換建構函式的目的是實現型別的自動轉換。

只有乙個引數,而且不是複製建構函式的建構函式,一般 就可以看作是轉換建構函式。

當需要的時候,編譯系統會自動呼叫轉換建構函式,建立 乙個無名的臨時物件(或臨時變數)。

#include

using namespace std;

class complex

complex

(double a,

double b)};

intmain()

執行效果

經過測試發現,以下寫法也會當作型別轉換函建構函式

2. c++中的explicit關鍵字只需用於修飾只有乙個引數的類建構函式, 它的作用是表明該建構函式是顯示的, 而非隱式的, 跟它相對應的另乙個關鍵字是implicit, 意思是隱藏的,類建構函式預設情況下即宣告為implicit(隱式)。

執行效果

當嘗試兩個引數時

執行效果

注:當類建構函式只有乙個引數或除了第乙個引數外其餘引數都有預設值時,則此類有隱含的型別轉換操作符(隱式轉換),但有時隱式轉換並不是我們想要的,可在建構函式前加上關鍵字explicit,來指定顯式呼叫。

c 建構函式和型別轉換

建構函式constructor和型別轉換 1.構造函式呼叫的時候只帶乙個引數時 引數列表為乙個引數或者多個引數帶有預設引數 才可以執行自動轉換。即該建構函式的引數型別可以自動轉換成該類型別。object const char name null,int otype 0 char 可以自動轉換成 ob...

型別轉換函式 轉換建構函式

用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 include using namespace std class complex 這個預設的建構函式便可以充當 轉換建構函式 complex double r ...

型別轉換函式 轉換建構函式

用途 將乙個其它型別的資料轉換成自定義的類型別。注意 這種建構函式只有乙個引數,但要區別於拷貝建構函式 形參是乙個自定義型別的引用 例子 include using namespace std class complex 這個預設的建構函式便可以充當 轉換建構函式 complex double r ...