我是否更喜欢使用点(.)或箭头( - >)运算符来访问C++中的指针成员?

flo*_*onk 1 c++ oop pointers

正如我刚刚了解到的,对于一个指针p,有两种等效的方式来访问被引用对象的成员,即p->foo(*p).foo.

是否有最适合使用的技术论据?

注意:我读到的一个论点是,.它更安全,因为它不能重载,而->可以.但是,我想,必须有更多的参数,因为在我工作的大多数C++代码中,我只看到->-construct.

Ste*_*oft 5

对于原始指针,运算符不能超载.

对于智能指针,operator *也可以重载,并且应该返回相同的对象operator ->(尽管取消引用).

operator ->比括号包裹的一切,尤其是当你多次使用它连续IMO更好的可读性.

链接有一个细微的差别operator ->(operator ->在返回的对象上被调用,它可以再次被重载)虽然operator *不是,但是这种情况会以不同的结果结束,这是不寻常的.