見出し画像

C++におけるオブジェクト指向プログラミング Part VII

コンストラクタとは?
コンストラクタは、クラスのオブジェクトが作成されるときに自動的に呼び出される特別なクラス関数です。主にオブジェクトの初期化に使用されます。

コンストラクタのタイプ

  1. デフォルトコンストラクタ: パラメータがないコンストラクタ。

  2. パラメータ付きコンストラクタ: 属性を初期化するためのパラメータを持つコンストラクタ。

  3. コピーコンストラクタ: 他のオブジェクトから変数をコピーしてオブジェクトを作成するコンストラクタ。

コンストラクタの例:

class Rectangle 
{
public:
    int width, height;

    // デフォルトコンストラクタ
    Rectangle() 
    {
        width = 0;
        height = 0;
    }

    // パラメータ付きコンストラクタ
    Rectangle(int w, int h) : width(w), height(h) {}
};

int main() 
{
    Rectangle rect1; // デフォルトコンストラクタが呼ばれる
    Rectangle rect2(10, 20); // パラメータ付きコンストラクタが呼ばれる
    return 0;
}

デストラクタとは?

デストラクタは、オブジェクトが破棄されるときに自動的に呼び出される特別なクラス関数です。オブジェクトがそのライフサイクルの間に取得したリソースを解放するために使用されます。

デストラクタの例:

class Sample 
{
public:
    // コンストラクタ
    Sample() 
    {
        cout << "コンストラクタが呼ばれました" << endl;
    }

    // デストラクタ
    ~Sample() 
    {
        cout << "デストラクタが呼ばれました" << endl;
    }
};

void createObject() 
{
    Sample obj;
}

int main() 
{
    createObject(); // この関数が終了するとデストラクタが呼ばれる
    return 0;
}

この例では、Sampleオブジェクトのデストラクタは、createObject()関数が実行を終了すると自動的に呼び出されます。

役割と重要性

  • 初期化とクリーンアップ: コンストラクタとデストラクタは、オブジェクトの初期化とクリーンアップを構造化するために使用されます。

  • リソース管理: 特に動的リソース割り当てが関与するシナリオでは、適切なリソース管理と解放を保証します。

  • 自動実行: 自動実行により、特に複雑なプログラムにおいてオブジェクト管理が簡素化されます。

結論

C++におけるコンストラクタとデストラクタは、オブジェクト指向プログラミングにおいて、効率的かつ信頼性の高いリソース管理のために不可欠です。コンストラクタとデストラクタはオブジェクトが作成されたときに適切に初期化され、破棄されたときにきちんとクリーンアップされることを保証し、リソースリークやその他の問題を防ぎます。

これにて、C++におけるオブジェクト指向プログラミングに関するシリーズは終了です。これらの記事を通じて、OOPの主要な原則とOOPののC++での実装を探求し、整理され、効率的で、再利用可能なコードを書くための知識を提供しました。

                                                 エンジニアファーストの会社 株式会社CRE-CO
                            su_myat_phyu

参考

Object Oriented Programming in C++ : 

C++ Object Oriented Programming : 


この記事が気に入ったらサポートをしてみませんか?