c 關鍵字explicit使用指南

2021-08-26 03:50:29 字數 896 閱讀 5011

explicit作用:

在c++中,explicit關鍵字用來修飾類的建構函式,被修飾的建構函式的類,不能發生相應的隱式型別轉換,只能以顯示的方式進行型別轉換。

例子:

未加explicit時的隱式型別轉換

1. class circle 

2.  

5.     circle(int x, int y = 0) : x(x), y(y) {} 

6.     circle(const circle& c) : r(c.r), x(c.x), y(c.y) {} 

7. private: 

8.     double r; 

9.     int    x; 

10.     int    y; 

11. }; 

12.  

13. int _tmain(int argc, _tchar* argv) 

14.  

加了explicit關鍵字後,可防止以上隱式型別轉換發生

1. class circle 

2.  

5.     explicit circle(int x, int y = 0) : x(x), y(y) {} 

6.     explicit circle(const circle& c) : r(c.r), x(c.x), y(c.y) {} 

7. private: 

8.     double r; 

9.     int    x; 

10.     int    y; 

11. }; 

12.  

13. int _tmain(int argc, _tchar* argv) 

14.

explicit 關鍵字的使用

cube.h class cube double cube volume return side side side bool cube comparevolume cube acube return volume acube.volume main.cpp include include cube...

C 的explicit關鍵字

c 的explicit關鍵字 c 中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面...

C 的explicit關鍵字

c 中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面所示 class myclas...