最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中delete和delete[]的區(qū)別詳細(xì)介紹

 更新時(shí)間:2012年11月16日 15:27:51   作者:  
一直對C++中的delete和delete[]的區(qū)別不甚了解,今天遇到了,上網(wǎng)查了一下,得出了結(jié)論,拿出來和大家分享一下
一直對C++中的delete和delete[]的區(qū)別不甚了解,今天遇到了,上網(wǎng)查了一下,得出了結(jié)論。做個(gè)備份,以免丟失。
C++告訴我們在回收用 new 分配的單個(gè)對象的內(nèi)存空間的時(shí)候用 delete,回收用 new[] 分配的一組對象的內(nèi)存空間的時(shí)候用 delete[]。
關(guān)于 new[] 和 delete[],其中又分為兩種情況:(1) 為基本數(shù)據(jù)類型分配和回收空間;(2) 為自定義類型分配和回收空間。
請看下面的程序。
復(fù)制代碼 代碼如下:

#include <iostream>;
using namespace std;
class T {
public:
T() { cout << "constructor" << endl; }
~T() { cout << "destructor" << endl; }
};
int main()
{
const int NUM = 3;
T* p1 = new T[NUM];
cout << hex << p1 << endl;
// delete[] p1;
delete p1;
T* p2 = new T[NUM];
cout << p2 << endl;
delete[] p2;
}

大家可以自己運(yùn)行這個(gè)程序,看一看 delete p1 和 delete[] p1 的不同結(jié)果,我就不在這里貼運(yùn)行結(jié)果了。
從運(yùn)行結(jié)果中我們可以看出,delete p1 在回收空間的過程中,只有 p1[0] 這個(gè)對象調(diào)用了析構(gòu)函數(shù),其它對象如 p1[1]、p1[2] 等都沒有調(diào)用自身的析構(gòu)函數(shù),這就是問題的癥結(jié)所在。如果用 delete[],則在回收空間之前所有對象都會首先調(diào)用自己的析構(gòu)函數(shù)。

基本類型的對象沒有析構(gòu)函數(shù),所以回收基本類型組成的數(shù)組空間用 delete 和 delete[] 都是應(yīng)該可以的;但是對于類對象數(shù)組,只能用 delete[]。對于 new 的單個(gè)對象,只能用 delete 不能用 delete[] 回收空間。

所以一個(gè)簡單的使用原則就是:new 和 delete、new[] 和 delete[] 對應(yīng)使用。

相關(guān)文章

  • C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制

    C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制

    這篇文章主要介紹了C++非繼承時(shí)函數(shù)成員訪問屬性和類繼承過程中的訪問控制,非繼承時(shí),protected成員和private成員沒有任何區(qū)別,都是類內(nèi)部可以直接訪問它們、類外部的類對象不可訪問它們、類內(nèi)部的類對象可以訪問它們,更多詳細(xì)內(nèi)容請參考下面相關(guān)資料
    2022-03-03
  • C++如何獲取鼠標(biāo)點(diǎn)擊位置

    C++如何獲取鼠標(biāo)點(diǎn)擊位置

    這篇文章主要介紹了C++如何獲取鼠標(biāo)點(diǎn)擊位置問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • opencv提取外部輪廓并在外部加矩形框

    opencv提取外部輪廓并在外部加矩形框

    這篇文章主要為大家詳細(xì)介紹了opencv提取外部輪廓并在外部加矩形框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C++簡單五子棋的AI設(shè)計(jì)實(shí)現(xiàn)

    C++簡單五子棋的AI設(shè)計(jì)實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了C++簡單五子棋的AI設(shè)計(jì)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Qt中QZXing 的編譯與使用

    Qt中QZXing 的編譯與使用

    本文主要介紹了Qt中QZXing 的編譯與使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++基礎(chǔ)入門教程(二):數(shù)據(jù)、變量、宏等

    C++基礎(chǔ)入門教程(二):數(shù)據(jù)、變量、宏等

    這篇文章主要介紹了C++基礎(chǔ)入門教程(二):數(shù)據(jù)、變量、宏等,本文講解了變量初始化、宏定義、三種進(jìn)制數(shù)的表示、const初探、auto聲明等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • C++多重繼承與虛繼承分析

    C++多重繼承與虛繼承分析

    這篇文章主要介紹了C++多重繼承與虛繼承分析,是面向?qū)ο蟪绦蛟O(shè)計(jì)非常重要的知識點(diǎn),需要的朋友可以參考下
    2014-08-08
  • C語言判斷字符串是否回文三種方法實(shí)例

    C語言判斷字符串是否回文三種方法實(shí)例

    回文就是字符串中心對稱,從左向右讀和從右向左讀的內(nèi)容是一樣的,下面這篇文章主要給大家介紹了關(guān)于C語言判斷字符串是否回文的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 詳解如何使用openssl創(chuàng)建自簽名證書

    詳解如何使用openssl創(chuàng)建自簽名證書

    這篇文章主要為大家介紹了詳解如何使用openssl創(chuàng)建自簽名證書示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • C++ 函數(shù)指針的實(shí)現(xiàn)

    C++ 函數(shù)指針的實(shí)現(xiàn)

    本文主要介紹了C++ 函數(shù)指針的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02

最新評論

湘阴县| 辽阳市| 丰原市| 民勤县| 光山县| 临桂县| 屏边| 民勤县| 龙胜| 仁布县| 武强县| 民乐县| 汝州市| 宣城市| 丰城市| 门源| 张家口市| 广南县| 衡阳市| 安远县| 岐山县| 壤塘县| 溧阳市| 祥云县| 兴安盟| 株洲市| 南开区| 新野县| 永寿县| 海城市| 四会市| 定南县| 大新县| 哈巴河县| 安岳县| 郎溪县| 湘乡市| 革吉县| 乌什县| 额敏县| 基隆市|