国产探花免费观看_亚洲丰满少妇自慰呻吟_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。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 牙克石市| 禄劝| 土默特左旗| 滨海县| 东兰县| 广东省| 景德镇市| 垣曲县| 东阿县| 麻江县| 盘山县| 鹤岗市| 松阳县| 紫金县| 育儿| 苏尼特左旗| 大新县| 上栗县| 阜新市| 贡嘎县| 肇庆市| 山阴县| 和田县| 宜兴市| 荔浦县| 凭祥市| 康保县| 杭锦旗| 宜兰县| 黄石市| 石阡县| 固阳县| 昌图县| 博湖县| 仁怀市| 蒲江县| 新晃| 天峨县| 咸丰县| 泽库县|