在c ++中,为什么我们可以重载operator ->
并且不能超载operator .
?
同样,为什么我们可以重载operator ->*
并且不能超载operator .*
?
如果你能帮助我,我将不胜感激!
答案 0 :(得分:4)
Stroustrup实际上将此问题作为website上的常见问题解答。引用他的回答:
运营商。 (dot)原则上可以使用与 - >相同的技术重载。但是,这样做会导致对操作是否意味着对象重载的问题。或者被提及的对象。
这个问题可以通过几种方式解决。在标准化的时候,哪种方式最好
并不明显
(请注意,Stroustup本身已经提议允许operator.
重载,其他人也是如此,因此我们可能会在该语言的未来版本中看到它。)