關於explicit關鍵字

2021-08-31 02:33:45 字數 516 閱讀 3032

今天在看乙個源程式的時候用到了explicit關鍵字。在網上查詢了一下該關鍵字的作用。沒有進行試驗,只是整理了下:

1.explicit主要和建構函式一起使用.

2.當explicit修飾建構函式的時候,對於呼叫該建構函式進行進行 "隱式 "轉換的**將不會通過!

3.解除explicit的方式,就是使用強制轉換。

例如:

class  test

;void func(const test&)

情況1:

void func(2); //隱式轉換
這是可以通過的。這種情況相當於

void func(test(2));
情況2:

void func(2.0);
這個時候會通不過。需要顯示轉化:

void func(test(2.0));

關於explicit關鍵字的用法

explicit關鍵字的作用 禁止隱式呼叫類內的單引數建構函式,這主要包括如下三層意思 1 該關鍵字只能用來修飾類內部的建構函式 2 禁止隱式呼叫拷貝建構函式 3 禁止類物件之間的隱式轉換 關於explicit的隱式轉換,例子 class cexplict cexplict const cexpli...

explicit(顯示)關鍵字

explicit 使用 struct a operator bool const struct b explicit operator bool const void doa a a void dob b b intmain ok 直接列表初始化 a a4 ok 複製列表初始化 a a5 a 1 o...

關於C 中的explicit關鍵字

explicit,和建構函式一起使用.explicit constructor指明建構函式只能顯示使用,目的是為了防止不必要的隱式轉化.舉個例子 有這樣一段 class a int test const a 乙個應用函式 test 2 正確 過程是這樣的 編譯器知道傳的值是int而函式需要的是a型別...