冒号 (::) 用于访问全局命名空间或类的静态成员,而句点 (.) 用于访问类的实例成员。例如,std::cout 使用 :: 访问全局命名空间中的函数,obj.instanceVar 使用 . 访问类的实例成员变量。

C++ 中 :: 与 . 的区别
简短回答:
冒号 (::) 用于访问全局命名空间或类的静态成员,而句点 (.) 用于访问类的实例成员。
详细解答:
立即学习“C++免费学习笔记(深入)”;
冒号 (::)
- 用于访问全局命名空间中定义的标识符、变量或函数,例如:
std::cout。 - 用于访问类的静态成员(即不依赖于对象实例的成员),例如:
ClassName::staticMember。 - 用于限定类名,从而避免名称冲突,例如:
namespaceA::ClassName。
句点 (.)
- 用于访问类的实例成员(即与具体对象实例相关联的成员),例如:
object.instanceMember。 - 用于调用类的成员函数,例如:
object.memberFunction()。 - 用于访问对象指针或引用指向的成员,例如:
*objectPtr.member。
示例:
// 全局命名空间的函数
std::cout << "Hello world!" << std::endl;
// 类的静态成员变量
class MyClass {
public:
static int staticVar;
};
int MyClass::staticVar = 42;
// 类的实例成员变量和函数
class MyObject {
public:
int instanceVar;
void instanceFunc() {
std::cout << instanceVar << std::endl;
}
};
MyObject obj;
obj.instanceVar = 10;
obj.instanceFunc(); // 输出: 10











