C++中定义类的对象:用new和不用new的区别
生活随笔
收集整理的這篇文章主要介紹了
C++中定义类的对象:用new和不用new的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Point p1;
Point *p2=new Point();
p1 由系統創建并釋放,不用擔心會出現內存泄露,但是生命期只有在本區域的大括號內,出了大括號就沒用了。
P2 是指針,要自己釋放,用不好很危險,用好了功能強大,因為他可以賦值給全局的變量,一下子從局部變量變成全局變量,還能把對象作為函數返回值。
p1 是在棧空間申請Point大小的空間。new的內存區域是在棧,會自動分配空間,一般在局部變量時使用,函數結束后會自動釋放空間。
p2 這是向堆空間申請一個sizeof(Point)大小的空間存放Point對象。(使用new 可以完成對象的構造) 。用new的內在區域是在堆,要自己手動分配空間,使用完后要手動釋放空間, 另外棧中空間的分配一般在編譯時就知道大小了,而如果要在運行時分配空間,就要使用堆了
轉載于:https://www.cnblogs.com/wufengv5/p/3982155.html
總結
以上是生活随笔為你收集整理的C++中定义类的对象:用new和不用new的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个好听的星座名字
- 下一篇: 电影《老师好》里,最后的插曲《谁》的演唱