国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中explict關鍵字用法

2020-05-23 14:05:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++中explict關鍵字用法的相關資料,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起學習吧
 

C++提供了關鍵字explicit,可以阻止不應該允許的經過轉換構造函數進行的隱式轉換的發生。聲明為explicit的構造函數不能在隱式轉換中使用。

c++規定:對于可能只需傳一個參數的默認構造函數,都定義了一種隱式調用。

注意:只需傳一個參數不僅指的是只有一個參數的默認構造函數,也指那些包含了定義了參數默認值的那些默認構造函數。

舉例說明:

class MyClass{  public:    MyClass();    MyClass(string s);    MyClass(int i, int y = 0);}

這里的MyClass(string s)函數和MyClass(int i, int y = 0)函數都是可能只需傳一個參數的默認構造函數

看一下使用構造函數構造類對象的情況:

•MyClass obj1;//OK,調用了MyClass()

•MyClass obj2(string("Hello World!"));//OK,調用了MyClass(string s)

•MyClass obj3(12, 12);//OK,調用了MyClass(int i, int y = 0)

•MyClass obj4(12);//同上

•MyClass obj5 = 12;//同上。但是對于obj5,實際上等價于MyClass temp(12);MyClass obj5(temp);//也就是說默認調用了默認拷貝構造函數。這就是所謂的隱式調用。

大部分情況下,隱式調用都會產生bug,而且很難察覺。基于此,C++引入explict關鍵字關閉這種隱式調用,避免因為隱式調用而產生的bug。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台中市| 伽师县| 涟水县| 左权县| 那坡县| 蒙山县| 临邑县| 赞皇县| 全州县| 平遥县| 墨玉县| 新竹市| 余庆县| 阿拉尔市| 紫云| 仪征市| 饶平县| 旬阳县| 东丰县| 西吉县| 阳高县| 宝应县| 东明县| 喀什市| 佳木斯市| 鹿泉市| 双桥区| 高雄县| 东至县| 黄梅县| 普格县| 册亨县| 华蓥市| 攀枝花市| 会理县| 辽阳县| 福贡县| 兰西县| 石渠县| 基隆市| 雷山县|