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