在這個繼承程式中,我創建了 2 個類,A 是父類,B 是子類。并且我創建了兩個類的缺點并使用了解構式,并且兩個類都有兩個物件。@我的問題是,當我的程式運行時,它的輸出顯示 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
uj5u.com熱心網友回復:
第一個“A Disturctor”用于物件“A hamza(1)”。第二個“A Disturctor”用于物件“B Ramza(4)”
由于 B 繼承自 A,當 B 類的物件被銷毀時,B 類和 A 類的解構式都會被呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420323.html
標籤:
上一篇:模板類的繼承
下一篇:Swift結構繼承默認值
