在继承中使用析构函数
Using Destructor in inheritance
在这个继承程序中,我创建了 2 个 classes,其中 A 是父类,B 是子类 class。我创建了 classes 的缺点并且还使用了
析构函数,并且 classes 都有两个对象。 @我的问题是
当我的程序是 运行 那么它的输出显示 2 Destructor of class a
为什么?
#include <iostream>
using namespace std;
class A
{
int a;
public:
A(int a1) // cons(A)
{
a = a1;
}
A() {} // Dis(A)
~A() { cout << "A Disturctor"<< endl; }
};
class B : public A // inheritance
{
int b;
public:
B(int b1) // cons (A)
{
b = b1;
}
~B() { cout << "B Disturctor" << endl; } // Dis(B)
};
int main()
{
A hamza(1);
B Ramza(4);
return 0;
}
输出:
B Disturctor
A Disturctor1
A Disturctor2
第一个“A Disturctor”是对象“A hamza(1)”。
第二个“A Disturctor”用于对象“B Ramza(4)”
由于B继承自A,当classB的对象被销毁时,classB和classA的析构函数都会被调用
在这个继承程序中,我创建了 2 个 classes,其中 A 是父类,B 是子类 class。我创建了 classes 的缺点并且还使用了 析构函数,并且 classes 都有两个对象。 @我的问题是 当我的程序是 运行 那么它的输出显示 2 Destructor of class a 为什么?
#include <iostream>
using namespace std;
class A
{
int a;
public:
A(int a1) // cons(A)
{
a = a1;
}
A() {} // Dis(A)
~A() { cout << "A Disturctor"<< endl; }
};
class B : public A // inheritance
{
int b;
public:
B(int b1) // cons (A)
{
b = b1;
}
~B() { cout << "B Disturctor" << endl; } // Dis(B)
};
int main()
{
A hamza(1);
B Ramza(4);
return 0;
}
输出:
B Disturctor
A Disturctor1
A Disturctor2
第一个“A Disturctor”是对象“A hamza(1)”。 第二个“A Disturctor”用于对象“B Ramza(4)”
由于B继承自A,当classB的对象被销毁时,classB和classA的析构函数都会被调用