有人能告诉我 Objective-C 的 self 和 C++ 的 this 指针有什么区别吗?
有人能告诉我 Objective-C 的 self 和 C++ 的 this 指针有什么区别吗?
this
是一个关键字,而self
是一个变量。这样做的结果是,虽然this
始终指向执行特定方法的对象,但Objective-C方法在执行过程中可以自由修改self
。这有时被构造函数使用,当失败时设置self = nil
。self = [super init]
链接初始化器)可以看到初始化失败并知道不要在它们自己的初始化器中继续。self
设置为不同但有效的对象。这可以在类簇中使用,在构建初始化对象时,“抽象”类可以生成临时实例,但最终返回基于构建过程中建立的属性的不同对象。self
的更局部变量。this
是一个 rvalue,它不能被修改。 - GManNickG是的。其中一个拼写为s-e-l-f。另一个拼写为t-h-i-s。
不那么幽默地说:
self
用于Objective-C类中,表示指向当前实例的指针。
this
用于C++类中,表示指向当前实例的指针。
它们在完全不同的结构上执行类似的角色。