所以我对java很好,但对C ++来说是新手。我基本上尝试使用传递的参数为C ++创建一个构造函数,并使用this
将该值赋给该对象的字段。所以这就是java中的样子:
//Foo fields
private int num;
//Foo Constructor
public Foo(int num){
this.num = num;
}
如何使用this
在C ++中设置类似的变量?或者这不是一个选择?谢谢!
答案 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