explicit關鍵字的作用就是防止類建構函式的隱式自動轉換。
explicit只能用於修飾只有乙個引數的類建構函式,它的作用是表明該建構函式是顯示的, 而非隱式的,跟它相對應的另乙個關鍵字是implicit, 意思是隱藏的,類建構函式預設情況下即宣告為implicit(隱式)。
在c++中, 如果的建構函式只有乙個引數時, 那麼在編譯的時候就會有乙個預設的轉換操作:將該建構函式對應資料型別的資料轉換為該類物件.
如果類構造函式引數大於或等於兩個時,是不會產生隱式轉換的,當除了第乙個引數以外的其他引數都有預設值的時候,explicit關鍵字依然有效,此時,當呼叫建構函式時只傳入乙個引數,等效於只有乙個引數的類建構函式,
C 關鍵字之explicit
explicit翻譯過來就是 顯式 顧名思義 當我們用該關鍵字修飾該乙個類的建構函式時,該類物件 1 不允許通過隱式型別轉換得到 2 只能通過顯示呼叫建構函式獲得 通過 例項來看 首先,我們定義兩個類 a類建構函式不用explicit修飾 a e類建構函式用explicit修飾 class a a ...
C 之「關鍵字explicit」
explicit 1.引入 在c 中,我們有時可以將建構函式用作自動型別轉換函式。但這種自動特性並非總是合乎要求的,有時會導致意外的型別轉換,因此,c 新增了關鍵字 explicit 用於關閉這種自動特性。即被 explicit 關鍵字修飾的類建構函式,不能進行自動地隱式型別轉換,只能顯式地進行型別...
C 的explicit關鍵字
c 的explicit關鍵字 c 中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有 顯式 那麼必然就有 隱式 那麼什麼是顯示而什麼又是隱式的呢?如果c 類的建構函式有乙個引數,那麼在編譯的時候就會有乙個預設的轉換操作 將該建構函式對應資料型別的資料轉換為該類物件,如下面...