use*_*525 5 c++ java this cocos2d-x
我使用cocos2dx在c ++中编程,在添加精灵或对象时,
这个 - > addChild(something)
和addChild(something)
作品.两种方式都得出相同的结果.
但是,不仅在c++
,this
使用android系统编程太(也许,所有的编程语言使用"本"?).我在Java中使用它来替换ClassName.class,简单this
.但除此之外,还有this
很多用途.
但是因为我还没有深入编程语言,我不知道他们是否真的做同样的工作(这个 - > addChild
与addChild
AND ClassName.class
vs. this
).
我们为什么需要this
?
.
.
自答案:
this
是一个关键字,它引用许多面向对象编程语言中的当前类实例或对象.
所以...只是为了安慰?
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)
在这里,使用this
在MyClass
构造函数中的参数来区分value
和领域value
.单独引用value
选择参数,而使用this.value
引用字段.
希望这可以帮助!