[ create a new paste ] login | about

Link: http://codepad.org/W6eQiu2B    [ raw code | output | fork ]

ajiyoshi - C++, pasted on Sep 24:
#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;
}


Output:
1
2
3
4
リソース確保しますた
リソース開放しますた
リソース確保しますた
リソース開放しますた


Create a new paste based on this one


Comments: