継承 派生クラス

2019年4月14日
C++
#include <iostream>
using namespace std;

// 基本クラスを定義する
class B {
  int i;
public:
  void set_i(int n);
  int get_i();
};

// 派生クラスを定義する
class D : public B {
  int j;
public:
  void set_j(int n);
  int mul();
};

// 基本クラス中の変数iを設定する
void B::set_i(int n)
{
  i = n;
}

// 基本クラス中の変数iの値を返す
int B::get_i()
{
  return i;
}

// 派生クラス中の変数jを設定する
void D::set_j(int n)
{
  j = n;
}

// 基本クラス中の変数iの値に派生クラスの変数jの値を乗じた結果を返す
int D::mul()
{
  // 派生クラスは、基本クラスの公開メンバ関数を呼び出すことができる
  return j * get_i();
}

int main()
{
  D ob;

  ob.set_i(10); // 基本クラス中のiを設定する
  ob.set_j(4); // 派生クラス中のjを設定する

  cout << ob.mul() << "\n"; // 40を表示する

  return 0;
}
$ g++ sample8.cpp
$ ./a.out
40