"这个"的重要性

use*_*525 5 c++ java this cocos2d-x

我使用cocos2dx在c ++中编程,在添加精灵或对象时,

这个 - > addChild(something)addChild(something)

作品.两种方式都得出相同的结果.

但是,不仅在c++,this使用android系统编程太(也许,所有的编程语言使用"本"?).我在Java中使用它来替换ClassName.class,简单this.但除此之外,还有this很多用途.

但是因为我还没有深入编程语言,我不知道他们是否真的做同样的工作(这个 - > addChildaddChildAND ClassName.classvs. this).

我们为什么需要this

.

.

自答案:

this 是一个关键字,它引用许多面向对象编程语言中的当前类实例或对象.

所以...只是为了安慰?

tem*_*def 7

this有一些用途.首先,在某些情况下,您需要在当前方法中显式引用receiver对象,可能是您将其作为参数传递给另一个函数.例如,考虑这个C++代码:

void someOtherFunction(SomeClass* arg);

void SomeClass::doSomething() {
    someOtherFunction(this);
}
Run Code Online (Sandbox Code Playgroud)

someOtherFunction是一个自由函数,它接受一个指向SomeClass对象的指针.在上下文中调用它doSomething以便接收器对象是参数的唯一方法是使用this.

this 在C++中也用于赋值运算符,它需要返回对receiver对象的引用:

MyClass& MyClass::operator= (MyClass rhs) {
    // Do something to the receiver object
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

这里,return *this;表示"返回对接收者对象的引用",这是不能没有表达的this.

this在一些情况下也用于消除歧义.例如:

public class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,使用thisMyClass构造函数中的参数来区分value和领域value.单独引用value选择参数,而使用this.value引用字段.

希望这可以帮助!