单冒号:和双冒号::
-
单冒号
:
的使用:-
在类的构造函数和析构函数的初始化列表中使用单冒号
:
来初始化成员变量。它表示在执行构造函数主体之前对成员变量进行初始化。class MyClass { private: int member; public: MyClass(int value) : member(value) { } };
在上述示例中,构造函数
MyClass
通过初始化列表以value
的值来初始化member
成员变量。 -
在
switch
语句中,使用单冒号:
来表示某个case
或default
标签的结束。它将标签与执行语句分隔开来。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
的值为每个元素赋值,然后循环体中的代码处理每个元素。
-
-
双冒号
::
的使用:-
在命名空间中使用双冒号
::
引用命名空间内的成员: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::RED
、Color::GREEN
和Color::BLUE
引用了枚举类型Color
中的成员。
-