关于子类的析构函数
class Array{
private :
int * data;
public:
dellocate();
Array(int n){ data = new int[n];}
~Array(){
dellocate();
}
};
Array::dellocate()
{
delete[]data;
}
class Matrix: public Array
{
public:
Matrix(int n)
{
Array::Array(n);
}
dellocate(){
Array::dellocate();
}
~Matrix(){
dellocate();
}
}
测试函数如下:
Matrix ma(10);
这样子写子类的析构函数有问题吗?
为什么程序运行完成后会出现Debug Assertion failure的问题?
请诸位前辈指教啊!
private :
int * data;
public:
dellocate();
Array(int n){ data = new int[n];}
~Array(){
dellocate();
}
};
Array::dellocate()
{
delete[]data;
}
class Matrix: public Array
{
public:
Matrix(int n)
{
Array::Array(n);
}
dellocate(){
Array::dellocate();
}
~Matrix(){
dellocate();
}
}
测试函数如下:
Matrix ma(10);
这样子写子类的析构函数有问题吗?
为什么程序运行完成后会出现Debug Assertion failure的问题?
请诸位前辈指教啊!
...全文
相关推荐
详解C++中虚析构函数的作用及其原理分析
当子类中有指针成员变量时,虚析构函数可以确保在删除基类指针时调用子类的析构函数,以释放子类中的堆内存。虚析构函数的作用可以总结为以下两点:1.
PHP中构造函数和析构函数解析
与构造函数类似,子类的析构函数也不会自动调用父类的析构函数,需要通过`parent::__destruct()`来显式调用。
基类子类虚函数的调用顺序问题
当创建一个对象时,构造函数会按照继承层次自底向上依次调用,即先调用最底层子类的构造函数,然后逐层向上直到基类。相反,析构函数则按照自顶向下的顺序调用。这个规则称为构造器的初始化顺序。
深入探讨C++父类子类中虚函数的应用
本文将深入探讨C++父类子类中虚函数的应用,以帮助读者更好地理解和使用这一特性。
PHP 构造函数和析构函数原理与用法分析
析构函数与构造函数不同,父类的析构函数不会被引擎自动调用,子类的析构函数体中必须显式调用parent::__destruct()以执行父类的析构函数。如果子类未定义析构函数,则会继承父类的析构函数。


