是否与foo.bar从特定实例调用函数不同?我已经在教程中看到了它,但它从来没有被解释过,而且这个术语太过笼统,无法在谷歌上显示。
答案 0 :(得分:1)
运算符operator->
只能用于指针类型(在这种情况下foo->bar
等同于(*ptr).bar
)或重载operator->
的类型(在这种情况下,语义依赖于过载本身。)
指针类型的示例可能是:
struct some {
int x;
};
some a{10};
some* a_ptr = &x;
a.x = 10;
a_ptr->x = 10;
重载类型的示例可能是:
std::unique_ptr<some> a_ptr = std::make_unique<some>(10);
a_ptr->x = 10;
答案 1 :(得分:0)
foo->bar
是(*foo).bar
的缩写。 (除非foo
属于->
做其他事情的类类型。
答案 2 :(得分:0)
foo-&gt; bar 当foo是类
的对象时使用foo.bar