c++ 中 :: 和 . 的区别
回答:
C++ 中的 :: 和 . 是两个不同的运算符,用于访问类成员和全局成员。
详细解释:
1. ::(范围解析运算符)
- 用于访问全局成员,包括类外声明的变量、函数和类型。
- 可以用来解决命名冲突,例如当类名称与全局变量名称相同。
- 语法:::成员名;
2. .(成员访问运算符)
立即学习“C++免费学习笔记(深入)”;
- 用于访问类成员,包括数据成员和成员函数。
- 必须用于从类实例访问成员。
- 语法:对象.成员名;
区别:
- 访问范围: :: 访问全局成员,. 访问类成员。
- 命名冲突: :: 可以解决命名冲突,. 不能。
- 实例依赖: . 必须用于从类实例访问成员,:: 不需要。
示例:
访问全局变量:
<code class="cpp">int global_var = 10; cout << ::global_var; //输出 10</code>
访问类数据成员:
<code class="cpp">class MyClass {
public:
int data_member = 20;
};
MyClass object;
cout << object.data_member; //输出 20</code>解决命名冲突:
<code class="cpp">class MyClass {
public:
static int global_var = 30;
};
int global_var = 40;
cout << ::MyClass::global_var; //输出 30</code>











