c 隱式轉換

2021-07-23 13:41:35 字數 372 閱讀 8039

class string;

string s1 = 'a'; //錯誤:不能做隱式char->string轉換

string s2(10);   //可以:呼叫explicit string(int n);

string s3 = string(10);//可以:呼叫explicit string(int n);再呼叫預設的複製建構函式

string s4 = "brian"; //可以:隱式轉換呼叫string(const char *p);再呼叫預設的複製建構函式

string s5("fawlty"); //可以:正常呼叫string(const char *p);

void f(string);

string g()

C 隱式轉換

眾所周知,c 的基本型別中並非完全的對立,部分資料型別之間是可以進行隱式轉換的。所謂隱式轉換,是指不需要使用者干預,編譯器私下進行的型別轉換行為。很多時候使用者可能都不知道進行了哪些轉換。c 物件導向的多型特性,就是通過父類的型別實現對子類的封裝。通過隱式轉換,你可以直接將乙個子類的物件使用父類的型...

C 隱式轉換

include using namespace std class a a int main 程式輸出 constructor destructor a a 10 這樣的語法是通過的,為什麼?由於發生了建構函式的隱式轉換,隱式轉換這樣的規則同意用乙個引數來初始化物件,這會呼叫類中帶有乙個引數的建構函...

C 隱式轉換

下面幾種型別的轉換被稱之為隱式轉換 隱式轉換可以在很多種情況下發生,包括函式子句呼叫,cast計算表示式和賦值語句。預定義的隱式轉換總會成功而且不會引發異常,適當合理的使用者自定義隱式轉換也可以展示出這些 特性。一.同一性轉換 同一性轉換把任何型別轉換為統一的型別。只有在所需轉換的實體可以被轉換到一...