はい、使用しますthis->a = a;
また、C++ では、コンストラクターで初期化リストを使用する必要があることに注意してください。
class Blab
{
public:
Blab(int a, int b)
:m_a(a),
m_b(b)
{
}
private:
int m_a;
int m_b;
};
編集:
:a(a), b(b)
データメンバー a とコンストラクターに渡されるパラメーター a の両方に同じ名前を使用して、初期化リストで使用できます。異なる必要はありませんが、メンバー変数名に異なる命名規則を使用する方が良いと感じる人もいます。上記の例では、初期化リストが実際に何を行っていて、どのように使用されているかを明確にするために、さまざまな名前を使用しました。this->a
必要に応じて、別のメンバー変数を設定するために使用できます。たとえば、メンバー変数とパラメーター変数の両方が a と b の場合、
class MyClass
{
public:
MyClass(int a, int b);
private:
int a;
int b;
};
// Some valid init lists for the MyClass Constructor would be
:a(a), b(b) // Init member a with param a and member b with parameter b
:a(a), b(this->a) // Init member a with param a and init member b with member a (ignores param b)
:a(5), b(25) // Init member a with 5 and init member b with 25 (ignoring both params)
初期化リストは、クラス定義に現れるのと同じ順序でメンバー変数を初期化する必要があることに注意してください。優れたコンパイラは、そうでない場合に警告を出します。