C++中::和:的意思

C++中的“::”

1.类作用域
指明成员函数所属的类

M::f(s)  //表示f(s)是类M的成员函数

2.全局作用域符号
当全局变量在局部函数中与其中某个变量重名,就可以用::来区分。

int a;//全局变量
void test()
{
	int a = ::a;//用全局变量a给局部变量a赋值
}

3.作用域分解运算符
当声明一个类A,类A中声明了一个成员函数f(),但没有在类的声明中给出f的定义,那么在类外定义f时,就要写成 void A::f(),表示f()这个函数是类A的成员函数

class A
{
public:
	int test();
}
int A::test()//表示test属于A
{
	return 0;
}

C++中的“:”

1.表示变量占几个字节

typedef struct _XXX{
 
    unsigned char a:4;
    
    unsigned char c;
 
}; 

2.构造函数后面 表示初始化表达式

void ADD(int a,int b):a(0),b(0)
{
}

相当于

void ADD(int a,int b)
{
	a=0;
	b=0;
}

3.public和private后面的冒号,表示定义后面的成员是公有还是私有。

4.类名后面的冒号是用来定义类的继承

class 派生类名:继承方式 基类名
{
派生类的成员
}

class apublic A
{
 	int aa;
}
### C++ 中 `::` 运算符的含义 在 C++ 编程语言中,`::` 被称为作用域解析运算符(scope resolution operator)。它的主要功能是用来指定某个特定的作用域中的名称。以下是其具体用途: #### 1. 访问全局命名空间中的变量或函数 当局部变量或类成员变量与全局变量同名时,可以使用 `::` 来访问全局变量[^3]。 ```cpp int x = 10; void example() { int x = 5; std::cout << ::x << std::endl; // 输出全局变量 x 的值 (10) } ``` #### 2. 定义类外的成员函数 对于类定义外部实现的成员函数,需要通过 `::` 明确指出该函数属于哪个类。 ```cpp class MyClass { public: void myFunction(); }; // 类外定义成员函数 void MyClass::myFunction() { std::cout << "This is a member function." << std::endl; } ``` #### 3. 使用嵌套类或枚举类型的成员 如果一个类内部有静态成员、常量或者枚举类型,则可以通过 `::` 来引用这些成员。 ```cpp class ExampleClass { public: static int staticMember; enum Color { Red, Green, Blue }; }; int ExampleClass::staticMember = 42; void useEnumAndStatic() { std::cout << ExampleClass::Red << std::endl; // 输出 0 std::cout << ExampleClass::Green << std::endl; // 输出 1 std::cout << ExampleClass::Blue << std::endl; // 输出 2 std::cout << ExampleClass::staticMember << std::endl; // 输出 42 } ``` #### 4. 命名空间内的名字解析 用于区分不同命名空间下的相同名称的对象或方法。 ```cpp namespace A { int value = 10; } namespace B { int value = 20; } void displayValues() { std::cout << A::value << ", " << B::value << std::endl; // 输出 10, 20 } ``` #### 5. 调用基类的方法 派生类对象调用被隐藏的基类版本的方法时也需要借助于 `::`。 ```cpp class Base { public: virtual void show() { std::cout << "Base class method called" << std::endl; } }; class Derived : public Base { public: void show() override { std::cout << "Derived class method called" << std::endl; } void callBaseShow() { Base::show(); // 显式调用基类的 show 方法 } }; ``` 以上就是关于 C++ 中 `::` 操作符的主要应用情况及其意义说明[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值