0

所以我对 java 没问题,但对 C++ 很陌生。我基本上是在尝试使用传递的参数为 C++ 创建一个构造函数,并使用this. 所以这就是它在java中的样子:

//Foo fields
    private int num;

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

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

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 回答