C++創建對象加括號和不加括號的區別


1、一個類或者是有構造函數的對象。

①類名 對象名;  ->默認調用 對象名() 這個構造函數,在棧中存在對象名,在堆中存在實際對象。

②類名 對象名(一個以上參數); ->默認調用對應的構造函數,在棧中存在對象名,在堆中存在實際對象。

③類名 對象名(); ->不調用任何構造函數,Myclass a(), int func() 對比  Myclass a() 相當於申明一個函數 這個函數的返回類型是Myclass。

 

2、使用new 關鍵字創建對象

①  Myclass *p1 = new Myclass();

② Myclass *p2 = new Myclass;

-  ① ② 都是調用默認構造函數

- 對與內置類型,加括號可以進行初始化

  int *p3 = new int(1); // 1  

  int *p4 = new int(); // 0

  int *p5 = new int;  // 0


免責聲明!

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



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