这是一个解释我的问题的例子:
//myfile.h
class thing
{
public:
void doSomething();
private:
Book *text;
};
现在,在doSomething方法中,如何调用Book对象的方法read()? Read()是非静态的。对于这个例子,我假设我创建了一个名为obj的对象,它调用了doSomething()。
正确的电话会是: obj->读(), 或者this.obj-> read()
答案 0 :(得分:4)
正确的电话会是text->read()
。您也可以使用this->text->read()
。
在您的示例中,无需使用this
。另请注意,this
是一个指针,因此this.next->read()
甚至不会编译。
编辑如果您“创建了一个名为obj的对象,它调用了doSomething()”,那么根本不需要this
,具体取决于 where 你实例化thing
。如果thing
不是另一个对象的数据成员,那么您只需要:
thing obj;
....
obj.doSomething();
在任何情况下,由于obj.read()
没有thing
方法,您无法致电read()
。
答案 1 :(得分:1)
它只会是:
text->read()