0

这是一个解释我的问题的例子:

//myfile.h
class thing
{
public:
    void doSomething();
private:
    Book *text;
};

现在,在 doSomething 方法中,如何调用 Book 对象的方法 read()?Read() 是非静态的。对于这个例子,假设我创建了一个名为 obj 的事物对象,它称为 doSomething()。

正确的调用是:obj->read() 还是 this.obj->read()

4

2 回答 2

4

正确的调用是text->read(). 您也可以使用this->text->read().

在您的示例中,无需使用this. 另请注意,这this是一个指针,因此this.next->read()甚至不会编译。

编辑如果您“创建了一个名为 obj 的事物对象,该对象称为 doSomething()”,那么甚至不必是this.,具体取决于您在哪里实例化thing. 如果thing不是另一个对象的数据成员,那么您只需要:

thing obj;
....
obj.doSomething();

无论如何,你不能调用,obj.read()因为thing没有read()方法。

于 2012-08-03T17:01:31.543 回答
1

它只是:

text->read()
于 2012-08-03T17:01:27.393 回答