C++ 虚拟解构器-内存泄漏
现在我们必须创建C++ 虚拟解构器-内存泄漏,c++,memory-leaks,C++,Memory Leaks,现在我们必须创建类X(作为基类)和类Y(作为派生类)。它们都使用整数指针来保存不同大小的分配 class X { int *p; public: X() {p=new int[2];} ~X() {delete[] p;} }; class Y : public X { int *q; public: Y() {q=new int[4];} ~Y() {delete[] q;} }; 让我们在一个简单的循
类X
(作为基类)和类Y
(作为派生类)。它们都使用整数指针来保存不同大小的分配
class X
{
int *p;
public:
X() {p=new int[2];}
~X() {delete[] p;}
};
class Y : public X {
int *q;
public:
Y() {q=new int[4];}
~Y() {delete[] q;}
};
让我们在一个简单的循环中进行尝试:
for(int i=0;i<8;i++){X *ptr =new Y; delete ptr;}
for(int i=0;i此循环的每次执行
for(int i=0;i<8;i++){X *ptr =new Y; delete ptr;}
为此:
virtual ~X() {delete[] p;}
我相信术语“析构函数”是常用的,而不是“解构函数”是一个关于何时/何地使用虚拟析构函数的近似库,这个问题就是其中之一。这段代码比内存泄漏有更大的问题。感谢您尝试参考问答,但这以前已经做过
virtual ~X() {delete[] p;}