含有指向堆空间的指针的对象数据成员举例
时间: 2024-09-06 07:05:19 浏览: 18
在C++中,含有指向堆空间的指针的对象数据成员是指在对象内部有指针成员变量,这些指针成员变量指向了通过new操作符在堆上分配的动态内存。例如,考虑一个简单的类,该类有一个数据成员是指向堆上动态分配的整数数组的指针:
```cpp
class MyClass {
public:
MyClass(int size) {
// 在构造函数中,使用new分配了size个整数的数组,并将指针保存在对象的成员变量中
array = new int[size];
// 初始化数组元素
for(int i = 0; i < size; ++i) {
array[i] = 0;
}
}
~MyClass() {
// 析构函数中释放动态分配的数组内存
delete[] array;
}
void setArrayElement(int index, int value) {
// 设置数组指定位置的值
if(index >= 0 && index < arraySize) {
array[index] = value;
}
}
private:
int* array; // 指向堆上动态分配的整数数组
int arraySize; // 数组的大小,也可以作为成员变量存储
};
```
在这个例子中,`MyClass`的实例在创建时会在堆上分配一个整数数组,这个数组的大小由构造函数的参数`size`决定。成员变量`array`是一个指针,指向了这个动态分配的数组。析构函数中使用`delete[]`释放这个数组所占用的内存,以防止内存泄漏。