new對象后面加與不加括號的區別


new一個對象后面加括號與不加括號的區別

 

加括號與不加的區別

(1)加括號
    1. 若括號為空,即無實參項,那么理解為調用默認構造函數;
    2. 若括號非空,即有實參項,可以理解為調用重載構造函數,或 復合默認構造函數。

(2)不加括號
  調用默認構造函數,或復合默認構造函數。

默認構造函數 與 復合默認構造函數的區別

默認構造函數:編譯器會為每一個類默認提供一個構造函數,稱之為默認構造函數。默認構造函數一般參數為空。

復合默認構造函數:一個由用戶自定義的所有形式參數都賦有默認值的構造函數,稱之為復合默認構造函數。


兩者聯系

一個類中,若一旦有一個用戶自定義構造函數,那么由編譯器提供的默認構造函數就不再存在。用戶自定義的構造函數為默認構造函數的重載版。

默認構造函數不復存在時,用戶必須為這個類再自定義一個復合默認構造函數(選所有自定義構造函數其中之一,把形式參數均賦默認值即可)。

不論自定義構造函數(即構造函數的重載版)有多少個,只允許有一個復合默認構造函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM