勵志

勵志人生知識庫

explicit作用

C++中,explicit關鍵字主要用於修飾類的構造函式,其作用是防止該構造函式被用於隱式類型轉換,只允許進行顯示調用。

當一個構造函式被聲明為explicit後,它就不能用於自動類型轉換,比如在賦值語句中創建臨時對象。這有助於避免因隱式轉換而導致的錯誤或混淆。例如,如果一個類有一個接受單個參數的構造函式,那麼在沒有explicit關鍵字的情況下,編譯器可能會允許如下的隱式轉換:X a = 5;(假設X類的構造函式接受一個int參數)。加上explicit關鍵字後,這樣的隱式轉換就不被允許了。

此外,explicit關鍵字只能用於類的構造函式上,不能用於類外部的函式定義。它對於只有一個參數的構造函式或帶有默認參數的構造函式特別有用。對於無參數的構造函式和多參數的構造函式,由於它們總是以顯示調用的方式出現,因此加上explicit關鍵字沒有實際意義。