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