這個關鍵字原則上只對構造函數起做用,抑制陰性轉換,例如:函數
class String{ String(int size); //本意是要申請size大小的字符串 };
若是此時調用spa
String s1(20); //成功申請20個大小長度的字符串 String s2 = 20; //同上 String s3 = 'a'; //本意是要把a賦值給s3,結果是 申請了a字符對應大小的字符串
此時原函數聲明變成code
class String{ explicit String(int size); };
這樣就會抑制s3 = 'a'的 隱形轉換對象
利用原值重建一個臨時對象,並在設立初值時使用類型轉換blog
如ci
float x; cout << static_cast<int>(x)<<endl; //把x轉換爲float輸出
int main(){ ...
} int main(int argc,char* argv[]){ ... }
能夠省略最後的return 0;會自動加上一個隱式的return 0;字符串