程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++中的explicit關鍵字使用示例

C++中的explicit關鍵字使用示例

編輯:C++入門知識

 缺省的轉換操作:將該構造函數對應數據類型的數據轉換為該類對象,如下面所示:

  class MyClass

  {

  public:

  MyClass( int num );

  }

  ....

  MyClass obj = 10; //ok,convert int to MyClass

  在上面的代碼中編譯器自動將整型轉換為MyClass類對象,實際上等同於下面的操作:

  MyClass temp(10);

  MyClass obj = temp;

  上面的所有的操作即是所謂的"隱式轉換"。

  如果要避免這種自動轉換的功能,我們該怎麼做呢?嘿嘿這就是關鍵字explicit的作用了,將類的構造函數聲明為"顯示",也就是在聲明構造函數的時候前面添加上explicit即可,這樣就可以防止這種自動的轉換操作,如果我們修改上面的MyClass類的構造函數為顯示的,那麼下面的代碼就不能夠編譯通過了,如下所示:

  class MyClass

  {

  public:

  explicit MyClass( int num );

  }

  ....

  MyClass obj = 10; //err,cant non-explict convert

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved