C++创建对象:栈和堆的区别
生活随笔
收集整理的這篇文章主要介紹了
C++创建对象:栈和堆的区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先我們應(yīng)該了解棧和堆的差別:
詳細(xì)信息:傳送門(mén)
- 棧相當(dāng)于函數(shù)自帶的存儲(chǔ)空間,在windows下一般為2M,在Linux下一般為8M,存取速度稍微快一點(diǎn)。
- 堆是系統(tǒng)的空間,相對(duì)較大,一般為2G,效率稍微慢一點(diǎn),不過(guò)這點(diǎn)效率差距對(duì)于一般程序可以忽略不計(jì)。
棧上定義對(duì)象一般為類(lèi)名 對(duì)象名;,這個(gè)過(guò)程會(huì)調(diào)用構(gòu)造函數(shù),程序結(jié)束的時(shí)候會(huì)調(diào)用析構(gòu)函數(shù),不受程序員控制。
堆上定義對(duì)象一般使用new運(yùn)算符,同時(shí)會(huì)調(diào)用構(gòu)造函數(shù),需要手動(dòng)調(diào)用delete進(jìn)行析構(gòu)操作,容易造成內(nèi)存泄漏問(wèn)題(例如使用對(duì)象指針指向時(shí)),因此能在棧上創(chuàng)建對(duì)象盡量在棧上創(chuàng)建對(duì)象。
類(lèi)中創(chuàng)建對(duì)象和這個(gè)類(lèi)創(chuàng)建的地方有關(guān)。
全局變量和static變量,它們即不在堆上創(chuàng)建,也不在棧上創(chuàng)建。它們有自己的內(nèi)存空間,是除堆和棧以外的數(shù)據(jù)區(qū)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的C++创建对象:栈和堆的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lol的tgp助手好用还是多玩盒子好用
- 下一篇: 【C++学习笔记二】C++继承