c++ - 我应该更喜欢点 (.) 还是箭头 (->) 运算符来访问 C++ 中的指针成员?

标签 c++ oop pointers

<分区>

作为我just learned , 对于指针 p 有两种等效的方法访问引用对象的成员,即 p->foo(*p).foo.

是否有最好使用的技术参数?

注意:我读到的一个论点是 . 更安全,因为它不能重载,而 -> 可以。然而,我想肯定还有更多参数,因为在我处理的大多数 C++ 代码中,我只看到 ->-construct。

最佳答案

对于原始指针,运算符不能被重载。

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

在我看来,运算符 -> 比将所有内容都放在括号中可读性更好,尤其是当您连续多次使用它时。

operator -> 是链式的(operator -> 在返回的对象上调用,它可以再次被重载)而 operator 有一点不同* 不是,但以不同的结果结束的情况并不常见。

关于c++ - 我应该更喜欢点 (.) 还是箭头 (->) 运算符来访问 C++ 中的指针成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352286/

相关文章:

c++ - 单击按钮时QT在另一个矩形之上绘制一个矩形

c++ - 以下包扩展有什么问题?

C++ 使用非常量变量模板初始化对象

c - 从包含指针的结构中以十六进制打印原始数据

c - 德尔福指针类型转换

c++ - 未定义对 Qt 项目中 glew 方法的引用

Python 组合导致 AttributeError

c++ - 为什么重载运算符不起作用?

c - 动态二维数组 - 分配不起作用(段错误)

c++ - 模板类的 std::map 类型签名(声明)