0

したがって、Java は問題ありませんが、C++ は初めてです。私は基本的に、渡されたパラメーターを使用して C++ のコンストラクターを作成し、その値をそのオブジェクトのフィールドに割り当てようとしていますthis。したがって、Java では次のようになります。

//Foo fields
    private int num;

//Foo Constructor
    public Foo(int num){
    this.num = num;
    }

thisC ++でそのような変数を設定するにはどうすればよいですか? または、これはオプションではありませんか?ありがとう!!

4

2 に答える 2

3

C++ には、コンストラクター初期化子と呼ばれるさらにクリーンなアプローチがあります。多くの割り当てを行う代わりに、次の構文を使用できます。

public MyClass::MyClass(int num): someVar(num), someOtherVar(0) {
    // constructor here
}

本当に を使用したい場合はthis、C++ では がポインターであることを思い出してthisください。そのため、ポインター逆参照演算子を使用する必要があります。

this->num = num;

また

(*this).num = num;
于 2013-10-15T03:50:46.737 に答える
2

変数とメンバー名の間の代わりに使用this->numする必要があるポインターを介して構造体/クラスメンバーにアクセスするには、C ++のようにこれはポインターです。これはマニュアルからのものです->.

expression  can be read as
*x          pointed by x
&x          address of x
x.y         member y of object x
x->y        member y of object pointed by x
于 2013-10-15T03:50:35.133 に答える