使用它在Constructor中设置变量

时间:2013-10-15 03:45:11

标签: java c++ constructor field

所以我对java很好,但对C ++来说是新手。我基本上尝试使用传递的参数为C ++创建一个构造函数,并使用this将该值赋给该对象的字段。所以这就是java中的样子:

//Foo fields
    private int num;

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

如何使用this在C ++中设置类似的变量?或者这不是一个选择?谢谢!

2 个答案:

答案 0 :(得分:3)

C ++有一种更清晰的方法,称为constructor initializers。您可以使用以下语法,而不是进行大量分配:

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

如果你真的,真的想使用this,请记住在C ++中this是一个指针,所以你必须使用指针解除引用运算符,所以

this->num = num;

(*this).num = num;

答案 1 :(得分:2)

使用this->num,就像在c ++中这是一个指针,通过指针访问struct / class成员,你必须在变量和成员名之间使用->而不是.,这里是来自manual

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