コンテンツにスキップ

コンストラクタ#

コンストラクタとは#

コンストラクタとは、インスタンスを生成する際に呼び出されるメソッドのことです。


コンストラクタの定義#

コンストラクタは、クラス名と同じ名前のメソッドを定義することで定義できます。

#include <cstdio>

class MyClass
{
public:
    MyClass()
    {
        data_a = 0;
        data_b = 1.0;
    }

    void print()
    {
        printf("data_a = %d\n", data_a);
        printf("data_b = %f\n", data_b);
    }
private:
    int data_a;
    double data_b;
};

int main()
{
    MyClass my_class;
    my_class.print();
}

MyClass のコンストラクタは、MyClass と同じ名前のメソッドです。

必ず、MyClass のコンストラクタは、MyClass のインスタンスを生成する際に呼び出されます。

そのため、my_classに続いてmy_class_1というインスタンスを生成すると、MyClass のコンストラクタがそれぞれ呼び出されます。


コンストラクタの引数#

コンストラクタには、引数を渡すことができます。

#include <cstdio>

class MyClass
{
public:
    MyClass(int a, double b)
    {
        data_a = a;
        data_b = b;
    }

    void print()
    {
        printf("data_a = %d\n", data_a);
        printf("data_b = %f\n", data_b);
    }
private:
    int data_a;
    double data_b;
};

int main()
{
    MyClass my_class(0, 1.0);
    my_class.print();
}

MyClass のコンストラクタには、int 型の変数 adouble 型の変数 b を引数として渡しています。

MyClass のコンストラクタは、MyClass のインスタンスを生成する際に、int 型の変数 adouble 型の変数 b を受け取ります。