久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > 關于explicit構造函數
關于explicit構造函數
時間:2017-01-06作者:華清遠見

按照默(mo)認規定,只有一個(ge)參數(shu)(shu)的構(gou)造函數(shu)(shu)也定義了一個(ge)隱式轉(zhuan)換(huan),將該(gai)構(gou)造函數(shu)(shu)對應(ying)數(shu)(shu)據類型(xing)的數(shu)(shu)據轉(zhuan)換(huan)為(wei)該(gai)類對象,如下面所示:

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;
      &nbsp;&nbsp; }

如果像下面這樣聲明類對象:
         X x1 = 10.1; //OK 隱式轉換,等價于X x1 = X(10.1)
  &nbsp;      程序打印:X(double)

假如構造函數改成下面的形式 :
         X(int a);
         Explicit X(double b);
       &nbsp; 程序打印(yin):X(int) .

從此例子中(zhong)可(ke)以看到(dao),explicit對構(gou)造函數起(qi)的作(zuo)用是:抑制了隱式裝轉(zhuan)換。

但是有的時候(hou)可能會不需要這(zhe)種隱式轉(zhuan)換,如下:

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

當調用 fun(2)的(de)時候:

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

給(gei)構造函(han)數加上(shang)explicit后:

編譯器給出了錯(cuo)誤信息,這就(jiu)避免了在(zai)程序(xu)員毫不(bu)知情(qing)(qing)的(de)情(qing)(qing)況下(xia)出現(xian)錯(cuo)誤。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)