A a; // a存在栈上
A* a = new a(); // a存在堆中
以上两种方式皆可实现类的实例化,有无new的区别在于:
1 前者在栈中分配内存,后者在堆中分配内存
2 动态内存分配会使对象的可控性增强
3 大程序用new,小程序不加new,直接申请
4 new必须delete删除,不用new系统会自动回收内存
A a; // a存在栈上
A* a = new a(); // a存在堆中
以上两种方式皆可实现类的实例化,有无new的区别在于:
1 前者在栈中分配内存,后者在堆中分配内存
2 动态内存分配会使对象的可控性增强
3 大程序用new,小程序不加new,直接申请
4 new必须delete删除,不用new系统会自动回收内存