常见使用方法:
1.默认全局域
加上::后变量默认为全局域,代码如下:
#include <iostream>
#include <string>
using namespace std;
// 作用域名:: 数据/函数
int a = 10;
int main()
{
int a = 20;
cout << a << endl ;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
//作用域名::数据/函数
int a = 10;
int main()
{
int a = 20;
cout << ::a << endl ;
return 0;
}
2. 命名空间与双冒号
当建立一个命名空间时,用命名空间 + :: + 变量/函数,即指定当前命名空间下的变量或函数。代码如下:
#include <iostream>
#include <string>
using namespace std;
//作用域名::数据/函数
int a = 10;
namespace A
{
int a = 30;
}
int main()
{
int a = 20;
cout << A::a << endl ;
return 0;
}
3. 类与双冒号
类内定义的变量,可以在类外用类+变量名进行定义(类内必须用static进行限定),代码如下
#include <iostream>
#include <string>
using namespace std;
//作用域名::数据/函数
int a = 10;
class aa
{
public:
int a = 40;
};
int main()
{
int a = 20;
aa data;
cout << data.a << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
//作用域名::数据/函数
int a = 10;
class aa
{
public:
int static a;
};
int aa::a = 40;
int main()
{
int a = 20;
aa data;
cout << data.a << endl;
return 0;
}