码迷,mamicode.com
首页 > 编程语言 > 详细

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

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

标签:style   os   使用   sp   on   c   new   size   c++   

Point p1;

Point *p2=new Point();

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

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

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

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

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

标签:style   os   使用   sp   on   c   new   size   c++   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!