關于explicit構造函數
時間:2017-01-06作者:華清遠見
按照默認規定,只有一個參數的構造函數也定義了一個隱式轉換,將該構造函數對應數據類型的數據轉換為該類對象,如下面所示:
class X
如果像下面這樣聲明類對象:
假如構造函數改成下面的形式 : 從此例子中可以看到,explicit對構造函數起的作用是:抑制了隱式裝轉換。 但是有的時候可能會不需要這種隱式轉換,如下:
class X 當調用 fun(2)的時候:
程序打印:X(int)。和程序員期待的不同。 給構造函數加上explicit后:
編譯器給出了錯誤信息,這就避免了在程序員毫不知情的情況下出現錯誤。
相關資訊
發表評論
|