注册 登录
编程论坛 C++教室

关于建立对象的疑问

wenxinwukui 发布于 2010-11-17 16:41, 602 次点击
请问一下如果有一个类:
class A {};
对于两种建立对象的方法:A a; 和A* a = new A();这两种建立对象的区别是什么?
我是这样理解的不知道对不对:A a是在栈上建立对象,除了作用域就自动调用析构函数,而A* a = new A()是在堆上建立的对象,如果不手工delete,即使出了作用域也不自动调用析构函数。
请问一下我上面的理解对不对?
如果对的话那对于A* a = new A()除了作用域没有delete 是不是就产生内存泄露?
2 回复
#2
玩出来的代码2010-11-17 17:59
A a是在栈上建立对象,除了作用域就自动调用析构函数;前提是在局部范围内,也就是在那些函数中定义的,。
you are right。
#3
wenxinwukui2010-11-17 18:35
回复 2楼 玩出来的代码
thx
1