C++相当于Java

nob*_*ody 24 c++ java this

在Java中,您可以通过执行以下操作来引用当前对象:this.x = x.你是如何用C++做到的?

假设这些代码示例中的每一个都是被调用类的一部分Shape.

Java的:

public void setX(int x)
{
this.x = x;
}
Run Code Online (Sandbox Code Playgroud)

C++:

public:
void setX(int x)
{
//?
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*ley 30

相同的话: this

唯一的区别是它是一个指针,所以你需要使用->运算符:

void setX(int x)
{
    this->x = x;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不完全准确.`this`作为指针早于参考; 有参考文献是早先发明的,那么`this`就是一个参考. (4认同)

Edw*_*uck 5

C++的等价物是this,但有一些差异.

这是指向相关对象的指针,而不是引用; 因此,在访问字段或方法之前,必须使用指针解除引用操作符.

(*this).method(...)
(*this).field
Run Code Online (Sandbox Code Playgroud)

或者,使用更流行的语法

this->method(...)
this->field    
Run Code Online (Sandbox Code Playgroud)