您的位置:首页 > 编程语言 > C语言/C++

C++中使用new定义的变量和不使用new定义的变量区别

2015-06-12 15:04 337 查看
假设有一个类CTest,现定义两个CTest的对象

CTest t1;

CTest *t2 = new CTest();

1.本质不同

t1为类对象。

t2为类对象的指针。

2.作用域不同

t1作用域限制在定义类对象的方法中,当方法结束时,类对象也会被系统释放,不需要手工释放,安全不会造内存泄露。

t2作用域为全局,当程序结束时,需要使用delete进行手工释放,系统不会自动释放,如果忘记释放,容易造成内存泄露

3.内存中存放地址不同

t1存放在堆中。

t2存放在栈中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: