C++と色々

主にC++やプログラムに関する記事を投稿します。

純粋仮想関数にも実装を書くことが出来た

Effective C++読んでて初めて知った。今まで知らなかった…orz
メモしておこう。

#include <iostream>
using std::cout;
using std::endl;

class Base
{
public:
	virtual void Func() = 0;
        virtual ~Base() {}
};

void Base::Func()
{
	cout << "Base Func" << endl;
}

class Derived : public Base
{
public:
	virtual void Func()
	{
		cout << "Derived Func" << endl;
	}
};

int main()
{
	Base* pBase = new Derived();
	pBase->Func();
	pBase->Base::Func();
	delete pBase;

	return 0;
}

実行結果

Derived Func
Base Func
続行するには何かキーを押してください . . .

参考文献
スコット・メイヤーズ:"Effective C++ プログラムとデザインを改良するための55項目"、株式会社ピアソン・エデュケーション(2006)