應用篇 explicit宣告的建構函式作用

2021-10-09 11:34:56 字數 441 閱讀 8268

// explicit建構函式是用來防止隱式轉換的。請看下面的**:

1class

test1

2//普通建構函式

5private

:6 int num;7}

;89class

test2

10//explicit(顯式)建構函式

13private

:14 int num;15}

;1617 int main()

18

注:

test1的建構函式帶乙個int型的引數,**19行會隱式轉換成呼叫test1的這個建構函式。而test2的建構函式被宣告為explicit(顯式),這表示不能通過隱式轉換來呼叫這個建構函式,因此**20行會出現編譯錯誤。

普通建構函式能夠被隱式呼叫。而explicit建構函式只能被顯示呼叫。

關於explicit的應用

什麼是explicit呢?很簡單,他就是乙個讓隱式格式轉換失效的關鍵字。c 提供了 關鍵字explicit,可以阻止不應該允許的經過 轉換建構函式 進行的隱式轉換的發生。宣告為explicit的 建構函式 不能在隱式轉換中使用。下面解釋一下 explicit student const std st...

Linux篇 萬用字元的應用

萬用字元 萬用字元是shell在做pathnameexpansion時用到的。說白了一般只用於檔名匹配,它是由shell解析的,比如find,ls,cp,mv等。shell中常見的萬用字元 小tips 與區別 只能用來找檔案 用來找檔案,或創造檔案,生成序列 shell中常見的元字元 轉義字元 有時...

vue router路由的應用篇

檢視依賴是否存在,如下已存在,一般初始化的專案都已經安裝了vue router依賴 d node mydemo npm list vue router mydemo 1.0.0 d node mydemo vue router 3.3.4 如果依賴不存在 執行依賴安裝指令 d node mydemo...