C++中的默认析构函数不会自动删除成员指针指向的数组。默认析构函数只会释放对象自身所占用的内存,而不会递归地释放成员变量所指向的内存。
如果成员变量是指向数组的指针,并且在类的析构函数中需要释放这块内存,开发工程师需要手动编写析构函数来完成这个操作。在析构函数中,可以使用delete[]
来释放指针指向的数组内存。
以下是一个示例代码:
class MyClass {
private:
int* arr;
public:
MyClass() {
arr = new int[10];
}
~MyClass() {
delete[] arr;
}
};
在上述示例中,MyClass
类中的成员变量arr
是一个指向整型数组的指针。在构造函数中,我们使用new
运算符动态分配了一个长度为10的整型数组,并将指针赋值给arr
。在析构函数中,我们使用delete[]
运算符释放了arr
指针指向的数组内存。
这样,在MyClass
对象被销毁时,析构函数会被调用,从而释放成员变量arr
所指向的数组内存,避免内存泄漏。
推荐的腾讯云相关产品:无
领取专属 10元无门槛券
手把手带您无忧上云