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