这是一个解释我的问题的例子:
//myfile.h
class thing
{
public:
void doSomething();
private:
Book *text;
};
现在,在 doSomething 方法中,如何调用 Book 对象的方法 read()?Read() 是非静态的。对于这个例子,假设我创建了一个名为 obj 的事物对象,它称为 doSomething()。
正确的调用是:obj->read() 还是 this.obj->read()
正确的调用是text->read()
. 您也可以使用this->text->read()
.
在您的示例中,无需使用this
. 另请注意,这this
是一个指针,因此this.next->read()
甚至不会编译。
编辑如果您“创建了一个名为 obj 的事物对象,该对象称为 doSomething()”,那么甚至不必是this
.,具体取决于您在哪里实例化thing
. 如果thing
不是另一个对象的数据成员,那么您只需要:
thing obj;
....
obj.doSomething();
无论如何,你不能调用,obj.read()
因为thing
没有read()
方法。
它只是:
text->read()