C++ クラスの継承のサンプル

C++のクラスの継承のサンプルです。
説明用として3つのファイルがあります。(class1.h、class1.cpp、test1.cpp)

目次

1.基本クラスと派生クラスを定義する (class1.h)

基本クラスと派生クラスを定義しているファイルです。
基本クラスを継承して派生クラスを作成します。
継承元のクラスのことを「基本クラス 」or 「親クラス 」or 「スーパークラス」といいます。
継承先のクラスのことを「派生クラス」 or「 子クラス」 or「 サブクラス」といいます。

No. 説明
4行目は、基本クラス「Class1」を定義しています。
14行目は、派生クラス「Class2」を定義しています。
「class Class2」の後に「 : public Class1」と記述することにより、Class2は、Class1を継承します。
#include <string>
using namespace std;
// No.1
class Class1
{
private:
	string name1;

public:
	void print1();

};
// No.2
class Class2 : public Class1 
{
private:
	string name2;

public:
	void print2();
};

2.メンバ関数を実装する (class1.cpp)

メンバ関数を実装しているファイルです。
メンバ関数とはJavaでいうメソッドにあたります。

No. 説明
5-11行目は、クラス「Class1」のメンバ関数です。
class1.hの10行目のprint1の内容を記述しています。
13-19行目は、クラス「Class2」のメンバ関数です。
class1.hの20行目のprint2の内容を記述しています。
#include "Class1.h"
#include <iostream>
using namespace std;
// No.1
void Class1::print1()
{
	name1 = "クラス1";
	cout << name1 << "のメンバ関数です\n";

	return;
}
// No.2
void Class2::print2()
{
	name2 = "クラス2";
	cout << name2 << "のメンバ関数です\n";

	return;
}

3.派生クラスを使用する (test1.cpp)

派生クラスを使用しているファイルです。

場所 説明
8行目は、派生クラス「Class2」のオブジェクトを生成しています。
(Class2型のcla2というオブジェクトを生成)
10行目は、派生クラスのオブジェクト「cla2」が基本クラス「Class1」のメンバ関数「print1」を呼び出しています。
Class2は、Class1を継承しているため呼び出し可能です。
#include "Class1.h"

int main() {

	Class1 cla1;
	cla1.print1();
	// No.1
	Class2 cla2;
	// No.2
	cla2.print1(); //Class1のメンバ関数を呼び出せる
	cla2.print2();

	return 0;
}

結果

実行すると以下のように表示されます。

クラス1のメンバ関数です
クラス1のメンバ関数です
クラス2のメンバ関数です

関連の記事

C++ クラスのサンプル
C++ クラスのコンストラクタのサンプル




△上に戻る