http://studyhallweb.com/
プログラム学習室
[Home][C++言語]継承

C++言語 継承
アクセス指定子
アクセス指定子による継承時の振る舞いの違い
基底クラス public protected private
派生クラス public継承 public protected アクセス不可
protected継承 protected protected アクセス不可
private継承 private private アクセス不可

継承のサンプル
継承を使うと、基となるクラスに機能を追加できる
以下の例は、基底クラスはgetAdd関数しかないが、派生クラスでgetDeleteを追加している
派生クラスはgetAddをコーディングしていないが基底クラスと同等に使うことができる
// ======================================================================
// 継承の基底クラス ヘッダー clsBase.h
// ======================================================================
#ifndef _Orignal
#define _Orignal
class Orignal
{
protected:
	// 公開派生でprotectedとなる
	int iX;
public:
	int getAdd(int iA, int iB);
};
#endif
// ======================================================================
// 継承の基底クラス
// ======================================================================
#include "clsBase.h"

int Orignal::getAdd(int iA, int iB)
{
	iX = iA + iB;
	return iX;
}
// ======================================================================
// 派生クラス ヘッダー clsHasei.h
// ======================================================================
#ifndef _Hasei
#define _Hasei

#include "clsBase.h"

class Hasei : public Orignal
{
protected:
	int iY;

public:
	int getDelete(int iA, int iB);
};
#endif
// ======================================================================
// 派生クラス
// ======================================================================
#include "clsHasei.h"

int Hasei::getDelete(int iA, int iB)
{
	iY = iA - iB;
	return iY;
};

// ======================================================================
// 継承のサンプルプログラム
// ======================================================================
#include "clsHasei.h"
using namespace std;

int main(void)
{
	Hasei clsHasei;
	cout << "3 + 4 = " << clsHasei.getAdd(3, 4) << endl;
				// 基底クラスのメソッドが使える
	cout << "5 - 2 = " << clsHasei.getDelete(5, 2) << endl;
	return 0;
}
[Home][C++言語]継承