多型與虛擬函式-程式設計題#2(C++程式設計第6周)
阿新 • • 發佈:2019-02-11
程式設計題#2
來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。)
注意: 總時間限制: 1000ms 記憶體限制: 65536kB
描述
下面程式的輸出結果是:
destructor B
destructor A
請完整寫出 class A。 限制條件:不得為 class A 編寫建構函式。
123456789101112131415#include <iostream>using namespace std;class A {// 在此處補充你的代碼};class B:public A { public: ~輸入
無
輸出
destructor B
destructor A
樣例輸入
1無樣例輸出
12destructor Bdestructor A程式碼:
#include <iostream> using namespace std; class A { // 在此處補充你的程式碼 //通過把基類的解構函式宣告為virtual,可以首先呼叫派生類的解構函式,然後呼叫基類的解構函式。 //解決了問題:通過基類的指標刪除派生類物件時,只調用基類的解構函式。 public: virtual ~A() { cout<<"destructor A"<<endl; //2 } }; class B:public A { public: ~B() { cout << "destructor B" << endl; } //1 }; int main() { A * pa; pa = new B; delete pa; return 0; }