关于建立对象的疑问
请问一下如果有一个类:class A {};
对于两种建立对象的方法:A a; 和A* a = new A();这两种建立对象的区别是什么?
我是这样理解的不知道对不对:A a是在栈上建立对象,除了作用域就自动调用析构函数,而A* a = new A()是在堆上建立的对象,如果不手工delete,即使出了作用域也不自动调用析构函数。
请问一下我上面的理解对不对?
如果对的话那对于A* a = new A()除了作用域没有delete 是不是就产生内存泄露?