【发布时间】:2012-08-01 18:16:19
【问题描述】:
这里有一个例子来解释我的问题:
//myfile.h
class thing
{
public:
void doSomething();
private:
Book *text;
};
现在,在 doSomething 方法中,如何调用 Book 对象的方法 read()? Read() 是非静态的。对于这个例子,假设我创建了一个名为 obj 的事物对象,它称为 doSomething()。
正确的调用是: 对象->读取(), 或 this.obj->read()
【问题讨论】:
-
答案与指针完全无关。 all 成员的行为相同。此外,评估指针是否真的是您想要的。在大多数情况下,指针在现代 C++ 中没有位置。
-
为什么不直接测试呢? text->read()
-
@RiaD 由于普遍存在未定义的行为,C++ 的测试方法惨遭失败。
-
不要增加混乱,但您可以使用取消引用运算符
*并执行类似(*obj).read()的操作,但取消引用箭头会为您执行此操作。一般来说,请务必检查您的指针!= NULL -
你真的需要开始阅读C++ book
标签: c++ variables pointers private