点(。)运算符和 - >之间的区别是什么?在C ++? [英] What is the difference between the dot (.) operator and -> in C++?
问题描述
点(。)运算符和C ++中的 - >之间有什么区别?
foo-> bar()
与(* foo).bar()
相同。
上面的括号是必要的,因为 *
和。
运算符的绑定强度。
* foo.bar()
无法工作,因为Dot(。
)运算符(请参阅运算符优先级)
点(。
)无法重载,箭头( - >
)运算符可以重载。
点(。
)不能应用于指针。 / p>
另请参阅: C ++中的箭头操作符( - >)同义词是什么?
What is the difference between the dot (.) operator and -> in C++?
foo->bar()
is the same as (*foo).bar()
.
The parenthesizes above are necessary because of the binding strength of the *
and .
operators.
*foo.bar()
wouldn't work because Dot (.
) operator is evaluated first (see operator precedence)
The Dot (.
) operator can't be overloaded, arrow (->
) operator can be overloaded.
The Dot (.
) operator can't be applied to pointers.
Also see: What is the arrow operator (->) synonym for in C++?
这篇关于点(。)运算符和 - >之间的区别是什么?在C ++?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!