编辑:抱歉这个愚蠢的标题;我想我所说的“指针对象”是指取消引用的对象指针(如果有任何说明的话)。
我是 C++ 的新手,我一直在努力适应它的特性(来自 Java)。
我知道这通常不是必需的,但我想尝试通过指针传递对象。它当然有效,但我期待它也有效:
void test(Dog * d) {
*d.bark();
}
但事实并非如此。为什么是这样?我发现我可以执行以下操作:
void test(Dog * d) {
Dog dawg = *d;
dawg.bark();
}
而且它完美地工作。这对我来说似乎是多余的。
如有任何澄清,我们将不胜感激。谢谢!
最佳答案
伊莫。优先于取消引用 * ,因此:
(*d).bark();
或者,对于指针,如其他回复中所述 - 使用 ->
d->bark();
一定要检查 null :)
关于c++ - 为什么不能在指针对象上调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322381/