2012/06/20

C++ オーバーライド override

名前がオーバーロードと似ているオーバーライド。こちらは継承したクラスでメソッドの上書きをすることを指す。

関数のオーバーライド

#include <iostream>
//基底クラス
class Aclass{
public:
  void method();
};
//メンバ関数
void Aclass::method(){
  std::cout << "Aclass::method()\n";
}
//派生クラス
class Bclass : public Aclass{
public:
  void method();
};
//メンバ関数 オーバーライド 上書きによる再定義
void Bclass::method(){
  std::cout << "Bclass::method():override\n";
}
//メイン関数
int main(void){
  Aclass oAclass;//基底クラスをインスタンス化
  Bclass oBclass;//派生クラスをインスタンス化
  oAclass.method();
  oBclass.method();
  return 0;
}
Aclassを継承したBclassにて、method()を上書きすることで、Aclassに修正を加えることなく、同じ名前の関数を違った機能にすることができる。
Aclass::method()
Bclass::method():override


C++言語 Meadow & MinGW GCC 目次