C++中的点运算符是什么?


点运算符和箭头运算符都用于 C++ 中访问类的成员。它们只是在不同的情况下使用。在 C++ 中,声明为类、结构或联合的类型被认为是“类类型”。因此以下内容都属于此类。

  • a.b 仅在 b 是对象(或对对象[1] 的引用)a 的成员时使用。因此对于 a.b,a 总是一个类的实际对象(或对对象的引用)。
  • a →b 主要是一种简写形式,表示 (*a).b,即,如果 a 是对对象的指针,那么 a →b 是访问其指向的对象的属性 b。

请注意,. 不是可重载的。→ 是一个可重载运算符,因此我们可以在使用此运算符时定义我们自己的函数(运算符 →())。因此,如果 a 是一个重载了运算符 →(常见类型是智能指针和迭代器)的类的对象,那么含义就是类设计者实现的内容。


[1] 语义上来说,引用是对象的别名,因此我也应该将“或对指针的引用”添加到第 3 条中。但是,我认为这样会带来困惑,而不是帮助,因为很少用到指针的引用 (T*&)。

示例

#include<iostream>
class A {
   public: int b;
   A() { b = 5; }
};
int main() {
   A a = A();
   A* x = &a;
   std::cout << "a.b = " << a.b << "\n";
   std::cout << "x->b = " << x->b << "\n";
   return 0;
}

输出

这将给出以下输出 −

5
5

更新于: 2020 年 2 月 10 日

1K+ 浏览量

开启你的职业生涯

完成课程,获得认证

开始学习
广告