c++用new创建对象和不用new创建对象的区别解析

2025-04-02 09:42:29
推荐回答(2个)
回答1:

创建对象的几种方式:
1. 使用动态创建方式,new操作符创建对象。
此时对象是存储在堆区。可以创建非常大的空间(参考计算机的内存大小)。会调用对象的构造函数。
2. 使用动态创建方式,malloc(realloc等)函数创建对象。
此时对象是存储在堆区。可以创建非常大的空间(参考计算机的内存大小)。不会调用对象的构造函数。
3. 使用静态创建方式。
此时对象存放在栈区或者是静态区。会调用对象的构造函数。如果是函数内的局部变量,那么变量的大小受到限制,一般不能超过10M。

回答2:

new 在堆里分配内存,不用 new 一般在栈上