关于C++创建一个对象的问题
C++貌似有两种创建对象的方法
class test{}
main()
{
test a;
test* b = new test();
}
请问有什么区别,哪种好?
用new的这种必须手工delete吗?
[解决办法]
test a是在栈上创建的对象;
test *b = new test()是在堆上创建的对象,
用new创建的对象必须用delete删除,否则会造成内存溢出。
在栈上创建的对象就不需要手工删除,会自动删除的。
[解决办法]
class test{
};
main()
{
test a; //栈上分配内存空间给a对象,析构函数负责释放对象
test* b = new test(); //堆中分配空间给对象,必须手动调用delete释放内存,
}