C++ * 和 -> 之间的指针区别
太糟糕了,我无法用谷歌搜索这个...
有人可以解释一下或指出我在哪里可以找到这两者之间的区别吗?我知道 * 是一个解引用运算符,那么 -> 呢? ?有什么区别?
Possible Duplicate:
C++: ptr->hello(); /* VERSUS */ (*ptr).hello();
Too bad I can't google this...
Could someone explain or point me to where I can find the difference between these two? I understand * is a dereferencing operator, what about the -> ? What's the difference?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
a->b
是(*a).b
的语法糖,唯一的特殊情况是对象
operator->
,它是当 -> 时调用用在一个物体上。它可用于“模拟”对象是指针(与智能引用一样)a->b
is a syntactic sugar for(*a).b
The only special case is the object
operator->
which is called when -> is used on an object. It can be used to "simulate" the object is a pointer ( as with smart references )在没有重载
operator->
的情况下,p->x
相当于(*p).x
In the absence of overloading
operator->
,p->x
is equivalent to(*p).x