在C++中单冒号和双冒号的应用

单冒号:和双冒号::

  1. 单冒号 : 的使用:

    • 在类的构造函数和析构函数的初始化列表中使用单冒号 : 来初始化成员变量。它表示在执行构造函数主体之前对成员变量进行初始化。

      class MyClass {
      private:
          int member;
      public:
          MyClass(int value) : member(value) { }
      };
      

      在上述示例中,构造函数 MyClass 通过初始化列表以 value 的值来初始化 member 成员变量。

    • switch语句中,使用单冒号 : 来表示某个casedefault标签的结束。它将标签与执行语句分隔开来。

      int x = 2;
      switch (x) {
          case 1:
              // 执行语句
              break;
          case 2:
              // 执行语句
              break;
          default:
              // 执行语句
              break;
      }
      

      在上述示例中,case 1:case 2: 和 default: 后面的单冒号 : 表示相应标签的结束。

    • 在范围for循环中,使用单冒号 : 来遍历容器中的元素。

      std::vector<int> nums = {1, 2, 3, 4, 5};
      for (int num : nums) {
          // 使用 num 处理每个元素
      }
      

      在上述示例中,范围for循环以 num 的值为每个元素赋值,然后循环体中的代码处理每个元素。

  2. 双冒号 ::的使用:

    • 在命名空间中使用双冒号 :: 引用命名空间内的成员:

      namespace MyNamespace {
          int value = 10;
          void foo() {
              // 访问 value
              int x = MyNamespace::value;
          }
      }
      

      在上述示例中,MyNamespace::value 引用了命名空间 MyNamespace 中的变量 value

    • 在类中使用双冒号 :: 引用静态成员或静态成员函数:

      class MyClass {
      public:
          static int staticMember;
      
          static void staticFunction() {
              // 访问 staticMember
              int x = MyClass::staticMember;
          }
      };
      int MyClass::staticMember = 5;  // 静态成员的定义和初始化
      
      int main() {
          // 调用静态函数
          MyClass::staticFunction();
          return 0;
      }
      

      在上述示例中,MyClass::staticMember 和 MyClass::staticFunction() 分别引用了类 MyClass 中的静态成员变量和静态成员函数。

    • 在派生类中使用双冒号 :: 指定基类:

      class BaseClass {
      public:
          int member;
      };
      
      class SubClass : public BaseClass {
      public:
          void foo() {
              // 在派生类中访问基类的成员
              int x = BaseClass::member;
          }
      };
      

      在上述示例中,派生类 SubClass 使用双冒号 :: 来指定基类 BaseClass,并访问基类成员 member

    • 在枚举类型中使用双冒号 :: 引用枚举成员:

      enum Color {
          RED, GREEN, BLUE
      };
       
      int main() {
          // 使用枚举成员
          Color myColor = Color::RED;
          return 0;
      }
      

      在上述示例中,Color::REDColor::GREEN 和 Color::BLUE 引用了枚举类型 Color 中的成员。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值