所以我对 java 没问题,但对 C++ 很陌生。我基本上是在尝试使用传递的参数为 C++ 创建一个构造函数,并使用this
. 所以这就是它在java中的样子:
//Foo fields
private int num;
//Foo Constructor
public Foo(int num){
this.num = num;
}
如何this
在 C++ 中设置类似的变量?或者这不是一个选择?谢谢!!
所以我对 java 没问题,但对 C++ 很陌生。我基本上是在尝试使用传递的参数为 C++ 创建一个构造函数,并使用this
. 所以这就是它在java中的样子:
//Foo fields
private int num;
//Foo Constructor
public Foo(int num){
this.num = num;
}
如何this
在 C++ 中设置类似的变量?或者这不是一个选择?谢谢!!
C++ 有一种更简洁的方法,称为构造函数初始化程序。您可以使用以下语法,而不是进行大量分配:
public MyClass::MyClass(int num): someVar(num), someOtherVar(0) {
// constructor here
}
如果您真的非常想使用this
,请记住在 C++this
中是指针,因此您必须使用指针取消引用运算符,所以要么
this->num = num;
或者
(*this).num = num;
使用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