はじめに
C++のクラスは、オブジェクト指向プログラミングの基本となる「設計図」です。この設計図を実際にプログラムで活用するには、決まった手順を踏む必要があります。
この記事では、C++のクラスを利用するための基本的な流れを、以下の3つのステップに分けて、総復習として解説します。
- クラスを定義する: オブジェクトの設計図を作成します。
- オブジェクトを作成する: 設計図から実体を生成します。
- メンバにアクセスする: オブジェクトのデータや機能を実際に利用します。
クラスの利用手順とサンプルコード
このコードは、Dog
(犬)というクラスを定義し、そのクラスから dog1
というオブジェクトを作成して、そのメンバにアクセスする一連の流れを示します。
完成コード
#include <iostream>
#include <string>
using namespace std;
// --- 1. クラスの定義 ---
class Dog {
public:
// データメンバ
string name;
// メンバ関数
void bark() {
cout << name << "「ワン!」" << endl;
}
};
int main() {
// --- 2. オブジェクトの作成 ---
Dog dog1;
// --- 3. メンバへのアクセス ---
// メンバ変数に値を設定
dog1.name = "ポチ";
// メンバ関数を呼び出し
dog1.bark();
return 0;
}
実行結果
ポチ「ワン!」
各ステップの解説
ステップ1: クラスを定義する
class Dog { ... };
の部分が、クラスの定義です。どのようなデータ(name
)と、どのような機能(bark()
)を持つかをここで設計します。これはあくまで「型」の定義であり、この時点ではまだメモリ上に実体は存在しません。
ステップ2: オブジェクトを作成する
Dog dog1;
の部分が、オブジェクトの作成です。Dog
という設計図(型)から、dog1
という名前の**変数(オブジェクトの実体)**を宣言しています。この瞬間に、dog1
のためのメモリが確保されます。
補足: new
を使ったオブジェクトの作成
ポインタと new
演算子を使って、動的にオブジェクトを作成することもできます。この場合、使い終わったら必ず delete
でメモリを解放する必要があります。
// ポインタを宣言
Dog* p_dog;
// new で動的にオブジェクトを作成し、そのアドレスをポインタに格納
p_dog = new Dog;
// アロー演算子(->)でメンバにアクセス
p_dog->name = "ハチ";
p_dog->bark();
// deleteでメモリを解放
delete p_dog;
ステップ3: メンバにアクセスする
作成したオブジェクトのメンバ変数やメンバ関数には、ドット演算子 (.
) を使ってアクセスします。
dog1.name = "ポチ";
:dog1
オブジェクトのname
というメンバ変数に値を代入しています。dog1.bark();
:dog1
オブジェクトのbark
というメンバ関数を呼び出しています。
まとめ
C++のクラスを利用する手順は、以下の通りです。
- 設計する (
class
): どのようなデータと機能を持つか、クラスを定義する。 - 作成する (
オブジェクト宣言
): 設計図から、変数としてオブジェクトの実体を作る。 - 利用する (
.
または->
): 作成したオブジェクトのメンバにアクセスして、データを読み書きしたり、機能を実行したりする。
この「設計→作成→利用」という流れが、オブジェクト指向プログラミングにおける全ての基本となります。