使用new操作符可创建动态对象数组,需类有默认构造函数,数组元素自动初始化,内存用delete[]释放避免泄漏。

在C++中创建动态对象数组,主要通过new操作符在堆上分配内存。这种方式适用于对象数量在运行时才能确定的场景。下面介绍几种常用方式。
基本语法是使用new 类名[大小]来创建对象数组。这会调用类的默认构造函数为每个元素初始化。
delete[]释放内存,避免泄漏示例代码:
class MyClass {
public:
MyClass() { cout << "构造函数调用\n"; }
~MyClass() { cout << "析构函数调用\n"; }
};
<p>// 创建包含5个MyClass对象的动态数组
MyClass* arr = new MyClass[5];</p><p>// 使用数组...
// ...</p><p>// 释放内存
delete[] arr;
arr = nullptr;</p>如果类没有默认构造函数,不能直接使用new Type[n]。此时可以考虑以下替代方案:
立即学习“C++免费学习笔记(深入)”;
std::vector配合emplace_back或指定构造参数new结合原始内存分配(较复杂,不推荐新手使用)推荐做法:使用 std::vector
#include <vector>
<p>class Person {
public:
Person(const string& name, int age) : name(name), age(age) {}
private:
string name;
int age;
};</p><p>// 动态创建对象数组,支持非默认构造
std::vector<Person> people;
people.emplace_back("Alice", 25);
people.emplace_back("Bob", 30);</p>手动管理动态数组容易出错,建议遵循以下原则:
new[]和delete[],不要混用delete
nullptr
std::vector或std::unique_ptr等智能容器基本上就这些。虽然可以用new创建动态对象数组,但现代C++更推荐使用std::vector或智能指针,它们能自动管理内存,减少错误风险。
以上就是c++++中如何创建动态对象数组_c++动态对象数组创建方式的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号