C++中,`::`、`->` 和 `.`

发布于:2024-11-03 ⋅ 阅读:(110) ⋅ 点赞:(0)

C++中,::->.

在C++中,::->. 是用于访问成员(如变量、函数等)的不同操作符,它们分别用于不同的场景。以下是它们各自的作用和用法:

  1. 双冒号 :: (作用域解析操作符)

    用于指定某个标识符(如变量、函数、类型等)的作用域。这通常用于访问类的静态成员、全局变量、枚举值,或者覆盖基类中被隐藏的成员。此外,:: 也用于命名空间中的名称解析。

    • 访问静态成员:

      class MyClass {
      public:
          static int staticVar;
      };
      
      int MyClass::staticVar = 10;  // 使用作用域解析操作符访问静态成员
      
    • 访问全局变量(避免与局部变量名冲突):

      int globalVar = 10;
      
      void func() {
          int localVar = 5;
          std::cout << ::globalVar << std::endl;  // 使用作用域解析操作符访问全局变量
      }
      
    • 命名空间中的名称解析:

      namespace ns {
          int var = 10;
      }
      
      int main() {
          std::cout << ns::var << std::endl;  // 使用作用域解析操作符访问命名空间中的变量
          return 0;
      }
      
  2. 箭头 -> (成员访问操作符,用于指针)

    用于通过对象的指针访问其成员。当你有一个指向对象的指针时,需要使用 -> 来访问该对象的成员。

    • 通过指针访问成员变量和成员函数:
      class MyClass {
      public:
          int var;
          void func() { std::cout << "Hello" << std::endl; }
      };
      
      int main() {
          MyClass* ptr = new MyClass();
          ptr->var = 10;  // 使用箭头操作符访问成员变量
          ptr->func();   // 使用箭头操作符调用成员函数
          delete ptr;
          return 0;
      }
      
  3. . (成员访问操作符,用于对象)

    用于直接通过对象访问其成员。当你有一个对象实例时,使用 . 来访问该对象的成员。

    • 通过对象访问成员变量和成员函数:
      class MyClass {
      public:
          int var;
          void func() { std::cout << "Hello" << std::endl; }
      };
      
      int main() {
          MyClass obj;
          obj.var = 10;  // 使用点操作符访问成员变量
          obj.func();   // 使用点操作符调用成员函数
          return 0;
      }
      

总结:

  • :: 用于指定作用域,通常用于访问静态成员、全局变量和命名空间中的名称。
  • -> 用于通过对象的指针访问成员。
  • . 用于直接通过对象访问成员。

网站公告

今日签到

点亮在社区的每一天
去签到