explicit關鍵字的作用是用來修飾類的建構函式,表明該建構函式是顯式的,禁止單引數建構函式的隱式轉換。
假如沒有explicit:
class myclassa;
class myclassb
;myclassa obj1;
myclassb obj2;
obj2=obj1;
實際上發生如下隱式轉換:
myclassb tmp(obj1);
myclassb obj2=tmp;
為避免這種隱式轉換,在建構函式前加上explicit之後:
class myclassa;
class myclassb
;
下面**就無法編譯通過:
myclassa obj1;
myclassb obj2;
obj2=obj1;
C 學習筆記 explicit關鍵字
c 中的explicit 關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面所示 class mycla...
C 學習筆記 explicit關鍵字
explicit關鍵字用於宣告必須使用強制轉換來呼叫的使用者定義的型別轉換運算子。例如,在下面的示例中,此運算子將名為 fahrenheit 的類轉換為名為 celsius 的類 must be defined inside a class called farenheit public stati...
c 關於轉換函式的概念及explicit關鍵字
轉換函式和explicit 轉換函式 類 基本型別 過載資料型別,如這下面的 double class fraction operator double const private int m num int m den int main 編譯器遇到4 f時會優先判斷是否過載了 號,發現沒有,又看f...