2022-04-30 C++中 :: 的含义

:: 在C++中是常用的一个符号,Java中没有。它主要的意思是表达所属关系,
主要解决三个场景下无法区分变量所属关系的问题。

1. 不同的类有相同名字的成员,采用::区分
比如 A类和B类中有一个名字相同的变量member
java中用前面加上包名区分。

class A{
int member;
};
class B{
int member;
};
A::member;
B::member;

A::member 表示A类中的成员member
B::member 表示B类中的成员member

2.全局变量和局部变量名字相同
java中通常用this来表示类的全局变量。

int a; // 全局变量

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

3.抽象函数在其它类实现,用::表示该函数所属类
java不支持抽象方法在非子类中实现。

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

另外
::在最开头时表示顶层命名空间,全局变量

std::string <==> ::std::string 

你可能感兴趣的:(2022-04-30 C++中 :: 的含义)