• 您現在的位置是:首頁 >綜合 > 2023-08-01 10:38:31 來源:

    del和delete鍵的區別(delete與 delete []區別)

    導讀 大家好,我是小小根,我來為大家解答以上問題。del和delete鍵的區別,delete與 delete []區別很多人還不知道,現在讓我們一起來看看吧!1...

    大家好,我是小小根,我來為大家解答以上問題。del和delete鍵的區別,delete與 delete []區別很多人還不知道,現在讓我們一起來看看吧!

    1、delete只會調用一次析構函數,而delete[]會調用每一個成員的析構函數。在More Effective C++中有更為詳細的解釋:“當delete操作符用于數組時,它為每個數組元素調用析構函數,然后調用operator delete來釋放內存。”delete與new配套,delete []與new []配套

    2、MemTest *mTest1=new MemTest[10];

    3、MemTest *mTest2=new MemTest;

    4、Int *pInt1=new int [10];

    5、Int *pInt2=new int;

    6、delete[]pInt1; //-1-

    7、delete[]pInt2; //-2-

    8、delete[]mTest1;//-3-

    9、delete[]mTest2;//-4-

    10、在-4-處報錯。

    11、這就說明:對于內建簡單數據類型,delete和delete[]功能是相同的。對于自定義的復雜數據類型,delete和delete[]不能互用。delete[]刪除一個數組,delete刪除一個指針。簡單來說,用new分配的內存用delete刪除;用new[]分配的內存用delete[]刪除。delete[]會調用數組元素的析構函數。內部數據類型沒有析構函數,所以問題不大。如果你在用delete時沒用括號,delete就會認為指向的是單個對象,否則,它就會認為指向的是一個數組。

    本文到此講解完畢了,希望對大家有幫助。

  • 成人app