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...