C++のクラスのコンストラクタのサンプルです。
目次
コンストラクタ
- コンストラクタとはクラスからオブジェクトを生成する時に実行される処理です。
- 主に初期化処理などに使われます。
- クラス名がコンストラクタの名前(関数名)になります。
→Class1というクラス名であればClass1がコンストラクタの名前になります。
コード
コンストラクタのサンプルです。
#include <string>
#include <iostream>
using namespace std;
class Class1
{
private:
string name; //メンバ変数名
public:
Class1(); //コンストラクタ
};
Class1::Class1()
{
cout << "コンストラクタです\n";
}
//クラスを使用
int main() {
Class1 cla; //コンストラクタです
return 0;
}
10行目は、コンストラクタの定義をしています。
19行目は、インスタンスを生成しています。その際に15行目が実行され「コンストラクタです」と表示されます。
コンストラクタのオーバーロード
コンストラクタのオーバーロードのサンプルです。
コンストラクタ名が同じで引数が異なるものです。
#include <string>
#include <iostream>
using namespace std;
//
class Class1
{
private:
string name; //メンバ変数名
public:
Class1(); //コンストラクタ
Class1(string name); //コンストラクタのオーバーロード
void print1(); //メンバ関数のプロトタイプ宣言
};
//
Class1::Class1()
{
cout << "コンストラクタです\n";
}
Class1::Class1(string name)
{
cout << "コンストラクタのオーバーロードです\n";
this->name = name;
}
void Class1::print1()
{
cout << name << "を取得しました\n";
return;
}
//クラスを使用
int main() {
Class1 cla; //コンストラクタです
Class1 cla2("12345"); //コンストラクタのオーバーロードです
cla2.print1(); //12345を取得しました
return 0;
}
13行目は、コンストラクタのオーバーロードです。
37行目は、Class1からcla2というオブジェクトを生成しています。引数があるので23行目のコンストラクタが実行され「コンストラクタのオーバーロードです」という文字列が表示されます。
関連の記事