1. 程式人生 > >C++ 虛擬函式解構函式的應用

C++ 虛擬函式解構函式的應用

總時間限制: 

1000ms

記憶體限制: 

65536kB

// 在此處補充你的程式碼

描述

程式填空輸出指定結果

#include <iostream> 
using namespace std;
class A 
{ 
public:
	A() { }
}; 
class B:public A { 
	public: 
	~B() { cout << "destructor B" << endl; } 
}; 
int main() 
{ 
	A * pa; 
	pa = new B; 
	delete pa; 
	return 0;
}

輸入

輸出

destructor B
destructor A

樣例輸入

樣例輸出

destructor B
destructor A

來源

如果什麼都不加,什麼都不會輸出,如果加上A的解構函式,只會輸出A的解構函式,為了輸出繼承類B的解構函式,需要在A的解構函式加virtual

#include <iostream> 
using namespace std;
class A
{
public:
	A() { }
	// 在此處補充你的程式碼
	virtual ~A()
	{
		cout << "destructor A" << endl;
	}
};
class B :public A {
public:
	~B() { cout << "destructor B" << endl; }
};
int main()
{
	A * pa;
	pa = new B;
	delete pa;
	return 0;
}