C++ 基本・派生クラス間の関数オーバーロード

基本クラスとその派生クラスに同じ名前の関数がある場合は、
通常の関数やメンバ関数のように
多重定義(オーバーロード)が可能です。

通常の関数の多重定義(オーバーロード)についてはコチラ

メンバ関数の多重定義(オーバーロード)についてはコチラ

#include <iostream>

using namespace std;

/********** 基本クラス **********/
class kihon {
public:
      void show(int data1) {
            cout << "data1 = " << data1 << '\n';
      }

};

/********** 派生クラス **********/
class hasei : public kihon {
public:
      void show(int data1, int data2) {
            cout << "data1 = " << data1 << '\n';
            cout << "data2 = " << data2 << '\n';
      }

};

void main() {

      hasei b;
      b.show(10);      // 基本クラスのshow関数が呼ばれる
      b.show(10, 20);      // 派生クラスのshow関数が呼ばれる
}

このプログラムには、基本クラスと派生クラスにshow関数があります。

しかし、引数の個数が異なるので、適切に呼び分ける事ができています。