c 中關鍵字explicit用於類的建構函式

2021-07-09 03:03:37 字數 504 閱讀 9752

c++ explicit關鍵字的作用主要是用來修飾類的建構函式,表明該建構函式是顯式的,禁止單引數建構函式的隱式轉換。

因為在c++類的建構函式只有乙個引數的時候,在編譯的時候就會有乙個預設的轉換操作:將該建構函式對應資料型別的資料轉換為該類物件

比如:

class exampleclass

;exampleclass obj = 10; 它將會把10隱士轉換為exampleclass 物件

實際上等同於:

exampleclass tem(10);

exampleclass  obj = tem;

如果要避免這種自動轉換的功能,可以在宣告建構函式的時候前面新增上explict關鍵字,將類的建構函式宣告為「顯示」,這樣就可以禁止這種自動的轉換操作。

將類的建構函式為顯示的:

class exampleclass

;

c 中explicit關鍵字

c 中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的。既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?按照預設規定,只有乙個引數的建構函式也定義了乙個隱式轉換,將該建構函式對應資料型別的資料轉換為該類物件,如下面所示 include using namesp...

c 中的explicit關鍵字

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

c 中的explicit關鍵字

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