在继承中使用析构函数

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的析构函数都会被调用