名前がオーバーロードと似ているオーバーライド。こちらは継承したクラスでメソッドの上書きをすることを指す。
関数のオーバーライド
#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 目次