C++におけるオブジェクト指向プログラミング Part II
クラスとは何か?
C++でのクラスはオブジェクトを作成するための設計図(blueprint)です。データと関数を一つの単位にまとめることで、データ型を定義します。
クラスの定義方法
C++でクラスを定義するには、classキーワードに続けてクラス名と波括弧を使用します:
class MyClass
{
// 属性やメソッドはここに記述
};
クラスの構造
C++の典型的なクラスには以下のものが含まれます:
データメンバー:データを保持する変数。
メンバー関数:クラスの動作を定義する関数。
クラスのメンバーへのアクセスを制御するアクセス指定子も含まれます:
public(公開):クラスの外部からアクセス可能。
private(非公開):クラス内部からのみアクセス可能。
protected(保護):クラス内部および派生クラスからアクセス可能。
クラスの例:
class Car
{
private:
string brand;
string model;
int year;
public:
void setBrand(string b)
{
brand = b;
}
string getBrand()
{
return brand;
}
// モデルと年に対する追加のメソッド
};
オブジェクトとは何か?
オブジェクトはクラスのインスタンスです。クラスが定義されても、そのクラスのオブジェクトが作成されるまではメモリが割り当てられません。
オブジェクトの作成
オブジェクトを作成するには、クラス名でオブジェクトを宣言します:
Car myCar;
オブジェクトの使用方法
オブジェクトが作成されると、ドット演算子(.)を使用してそのメンバーにアクセスできます:
myCar.setBrand("Tesla");
cout << myCar.getBrand();
オブジェクトを活用したシンプルな例
#include <iostream>
using namespace std;
class Rectangle
{
public:
int width, height;
int calculateArea()
{
return width * height;
}
};
int main()
{
Rectangle rect;
rect.width = 5;
rect.height = 10;
cout << "Area: " << rect.calculateArea();
return 0;
}
この例では、width(幅)とheight(高さ)という2つのデータメンバーを持つRectangleクラスを定義し、calculateArea(面積を計算する)というメソッドを使用しています。次に、Rectangleオブジェクトを作成し、面積を計算しています。
結論
クラスとオブジェクトを理解することは、C++でのオブジェクト指向プログラミングをマスターするために不可欠です。クラスとオブジェクトを理解することで、データと機能を一緒にカプセル化し、モジュラーで再利用可能で、管理しやすいコードを作成することを可能にします。
次回のパート3では、C++におけるカプセル化 (Encapsulation)の概念を探究し、OOPの理解をさらに深めます。
エンジニアファーストの会社 株式会社CRE-CO
su_myat_phyu
参考
Object Oriented Programming in C++ :
C++ Object Oriented Programming :