New 包括两个过程:
分配内存
Constructor
delete 包括两个过程:
Deconstructor
释放内存
例如:
string *stringarray1 = static_cast<string*>(malloc(10 * sizeof(string)));
//只是申请了可以容纳10个string对象的足够空间,
//但内存里并没有创建这些对象
string *stringarray2 = new string[10];
//stringarray2指向的是一个包含10个完全构造好的string对象的数组,每个对象可以在任何读取string的操作里安全使用
分配内存
Constructor
delete 包括两个过程:
Deconstructor
释放内存
例如:
string *stringarray1 = static_cast<string*>(malloc(10 * sizeof(string)));
//只是申请了可以容纳10个string对象的足够空间,
//但内存里并没有创建这些对象
string *stringarray2 = new string[10];
//stringarray2指向的是一个包含10个完全构造好的string对象的数组,每个对象可以在任何读取string的操作里安全使用

本文详细解释了C++中new和delete操作符的工作原理,包括内存分配、构造函数调用、对象实例化、析构函数执行及内存释放过程。通过实例展示了如何安全地管理动态分配的内存。
860

被折叠的 条评论
为什么被折叠?



