国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

Hi,歡迎來到嵌入式培訓(xùn)高端品牌 - 華清遠(yuǎn)見教育科技集團(tuán)<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當(dāng)前位置: > 華清遠(yuǎn)見教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > 關(guān)于explicit構(gòu)造函數(shù)
關(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
         {
                  public:
                           X(int a);
                           X(double b);
         };
         X::X(int a)
         {
                  cout << "X(int)" << endl;
         }
         X::X(double b)
         {
                  cout << "X(double)" << endl;
         }

如果像下面這樣聲明類對象:
         X x1 = 10.1; //OK 隱式轉(zhuǎn)換,等價(jià)于X x1 = X(10.1)
         程序打。篨(double)

假如構(gòu)造函數(shù)改成下面的形式 :
         X(int a);
         Explicit X(double b);
         程序打。篨(int) .

從此例子中可以看到,explicit對構(gòu)造函數(shù)起的作用是:抑制了隱式裝轉(zhuǎn)換。

但是有的時(shí)候可能會(huì)不需要這種隱式轉(zhuǎn)換,如下:

class X
         {
                  public:
                           X(int a) {
                                    cout << "X(int)" << endl;
                           }
           }
         int fun(X x);

當(dāng)調(diào)用 fun(2)的時(shí)候:

程序打印:X(int)。和程序員期待的不同。

給構(gòu)造函數(shù)加上explicit后:

編譯器給出了錯(cuò)誤信息,這就避免了在程序員毫不知情的情況下出現(xiàn)錯(cuò)誤。

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達(dá)個(gè)人看法,并不表明本站同意其觀點(diǎn)或證實(shí)其描述)