C++ クラスのコンストラクターとデストラクター
クラスコンストラクター
クラスのコンストラクターは、クラスの新しいオブジェクトが作成されるたびに実行されるクラスの特別なメンバー関数です。
コンストラクターの名前はクラスの名前とまったく同じであり、コンストラクターを使用して特定のメンバー変数の初期値を設定できます。型は返されず、void も返されないため、コンストラクターは戻り値の型を指定する必要はありません。
例えば:
#include <iostream>
using namespace std;
class Line
{
public:
int length;
Line(int len){
// 这是构造函数
length=len;
}
};
// 程序的主函数
int main( )
{
Line line(6);// 设置长度
cout << "Line的length:" << line.length <<endl;
return 0;
}
初期化子リストを使用してフィールドを初期化する
上記の行を例として、初期化リストを使用してフィールドを初期化します。
Line(int len):length(len) {
...
}
上記のコードは次のコードと等価です。
Line(int len){
length=len;
}
初期化する必要がある複数のフィールド x、y、z などを持つクラス C があるとします。同様に、以下に示すように、上記の構文を使用し、カンマを使用して異なるフィールドを区切ることができます。
C::C( double a, double b, double c): x(a), y(b), z(c)
{
...
}
クラスデストラクタ
クラスのデストラクターは、作成されたオブジェクトが削除されるたびに実行されるクラスの特別なメンバー関数です。
デストラクターの名前は、先頭にチルダ (~) が付く点を除いて、クラスの名前とまったく同じです。値を返さず、パラメーターを取ることもできません。デストラクターは、プログラムを終了する前にリソースを解放するのに役立ちます (ファイルを閉じる、メモリを解放するなど)。
例えば:
#include <iostream>
using namespace std;
class Line
{
public:
int length;
Line(int len){
// 这是构造函数
length=len;
}
~Line(void){
// 这是析构函数
cout<<"该对象已经被销毁"<<endl;
}
};
// 程序的主函数
int main( )
{
Line line(6);// 设置长度
cout << "Line的length:" << line.length <<endl;
return 0;
}