C++ クラスのサンプル

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

目次

1.クラスを定義する (class1.h)

クラスを定義しているファイルです。
クラスの定義は一般的にヘッダファイル(拡張子がh)で行います。

No. 説明
非公開の設定
6行目は、privateを指定しています。
7行目は、メンバ変数です。privateが指定されているためクラスの外部からアクセスすることができません。
公開の設定
9行目は、publicを指定しています。
10,11行目は、メンバ関数のプロトタイプ宣言です。メンバ関数の処理の記述は、class1.cppにあります。publicが指定されているためクラスの外部からアクセスすることができます。
13行目は、ブロックの後にセミコロンが必要です。
ブロックとは波かっこ( { } )を指します。
#include <string>
using namespace std;
class Class1
{
// No.1
private:
	string name; //メンバ変数
// No.2
public:
	void print1(); //メンバ関数のプロトタイプ宣言
	void print2(); //メンバ関数のプロトタイプ宣言
// No.3 
};

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

メンバ関数を実装しているファイルです。
メンバ関数の処理内容を記述することを「メンバ関数を実装する」といいます。

No. 説明
6行目は、class1.hの10行目のメンバ関数の処理内容を記述しています。
構文は以下のとおりです。
void Class1::print1()
戻り値のデータ型 クラス名::メンバ関数名(引数のデータ型 引数)
→引数は無しで戻り値もなし
8行目のメンバ変数の定義は、class1.hの7行目にあります。
14行目は、class1.hの11行目のメンバ関数の処理内容を記述しています。
#include "Class1.h"
#include <iostream>
using namespace std;

// No.1
void Class1::print1()
{
	name = "print1";
	cout << name << "が処理されました1\n";

	return;
}
// No.2
void Class1::print2()
{
	name = "print2";
	cout << name << "が処理されました1\n";

	return;
}

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

クラスのオブジェクト(インスタンス)を生成してメンバ関数を使用しているファイルです。

No. 説明
6行目は、クラスのオブジェクト(インスタンス)を生成しています。
Class1型のclaというオブジェクトを生成。
9,10行目は、クラスのメンバ関数です。class1.cppのprint1()とprint2()を呼び出しています。
#include "Class1.h"

int main() {

	// No.1
	Class1 cla;

	// No.2
	cla.print1();
	cla.print2();

	return 0;
}

結果

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

print1が処理されました1
print2が処理されました1

関連の記事

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




△上に戻る