c++如何在类中定义未知长度数组
时间: 2024-04-29 14:22:09 浏览: 92
C++ 中可以使用动态内存分配的方式来定义未知长度数组。可以使用关键字 `new` 和 `delete` 来实现动态内存分配和释放。在类中定义未知长度数组,需要在构造函数中进行动态内存分配,同时在析构函数中进行内存释放。
示例如下:
```c++
class Example {
public:
Example(int n) {
// 动态内存分配
arr = new int[n];
size = n;
}
~Example() {
// 内存释放
delete[] arr;
}
private:
int* arr; // 指向动态分配的数组的指针
int size; // 数组大小
};
```
在上述示例中,我们定义了一个 `Example` 类,其中包含一个动态分配的 `int` 类型数组 `arr` 和一个表示数组大小的成员变量 `size`。在构造函数中,我们使用 `new` 运算符分配了长度为 `n` 的 `int` 类型数组,并将指针赋值给 `arr`。在析构函数中,我们使用 `delete` 运算符释放了 `arr` 指向的内存空间。
在使用该类时,可以通过调用构造函数来动态分配数组,并在不需要该数组时调用析构函数进行内存释放。例如:
```c++
int main() {
Example ex(10); // 分配长度为 10 的数组
// 使用数组
return 0;
} // 调用析构函数释放内存
```
需要注意的是,动态内存分配和释放都需要谨慎操作,避免出现内存泄漏或者野指针等问题。
阅读全文