首页 > 编程语言 > 详细

C++中定义类的对象:用new和不用new的区别

时间:2014-09-19 20:53:45      阅读:212      评论:0      收藏:0      [点我收藏+]

Point p1;

Point *p2=new Point();

p1 由系统创建并释放,不用担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了。

P2 是指针,要自己释放,用不好很危险,用好了功能强大,因为他可以赋值给全局的变量,一下子从局部变量变成全局变量,还能把对象作为函数返回值。

p1 是在栈空间申请Point大小的空间。new的内存区域是在栈,会自动分配空间,一般在局部变量时使用,函数结束后会自动释放空间。

p2 这是向堆空间申请一个sizeof(Point)大小的空间存放Point对象。(使用new 可以完成对象的构造) 。用new的内在区域是在堆,要自己手动分配空间,使用完后要手动释放空间, 另外栈中空间的分配一般在编译时就知道大小了,而如果要在运行时分配空间,就要使用堆了

C++中定义类的对象:用new和不用new的区别

原文:http://www.cnblogs.com/wufengv5/p/3982155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!