#include<iostream>
using std::cout;
using std::endl;
class Base {
public :
Base(){}
//例えすることがなくても、基底クラスにはvirtualデストラクタが必要
virtual ~Base(){}
};
class Sub : public Base{
public :
Sub(){
cout << "リソース確保しますた" << endl;
}
virtual ~Sub(){
//何かリソースを開放する
cout << "リソース開放しますた" << endl;
}
};
int main(){
Sub* sub = new Sub(); //"リソース確保しますた"
delete sub; //"リソース解放しますた"
Base* base = new Sub(); //"リソース確保しますた"
delete base; //"リソース解放しますた"
return 0;
}