我是靠谱客的博主 内向冬瓜,这篇文章主要介绍作用域限定符(::)的用法,现在分享给大家,希望可以做个参考。

第一种,就是区分同名的全局变量(或函数)和局部变量(或函数)。

[cpp]  view plain  copy
  1. #include<iostream>  
  2. using namespace std;  
  3. int sum=0;  
  4. const int N=15;  
  5. int main()  
  6. {  
  7.     int n,a[N],sum=0;  
  8.     cin>>n;  
  9.     for(int i=0;i<n;i++)  
  10.     cin>>a[i];  
  11.     for(int i=0;i<n;i++)  
  12.     {  
  13.         if(i%2==0) sum+=a[i];  
  14.         ::sum+=a[i];  
  15.     }  
  16.     cout<<"all="<<::sum<<' '<<"odd="<<sum;  
  17.     return 0;  
  18. }  

全局变量sum用来求数组的全部和,局部变量sum用来求奇数小标元素的和。

第二种,类的成员函数在类外定义时,指明该函数的作用域为该类。

[cpp]  view plain  copy
  1. #include<iostream>  
  2. using namespace std;  
  3. int calculate(int x)  
  4. {return 2*x*x+4*x+6;}  
  5. class A  
  6. {  
  7.     private:  
  8.     int a;  
  9.     public:  
  10.     int calculate();  
  11.     A(int m) {a=m;}  
  12. };  
  13. int A::calculate()  
  14. {return 2*a*a+4*a+5;}  
  15. int main()  
  16. {  
  17.     A b(5);  
  18.     cout<<::calculate(5)<<endl;  
  19.     cout<<b.calculate()<<endl;  
  20.     return 0;  
  21. }
复制代码
1

第三种,命名空间限定,当想输出某命名空间(如:namespace ns1)中成员的数据时,可以采用命名空间名和作用域限定符::指向该成员数据。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<ol start="1" class="dp-cpp" style="font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 35px; padding: 0px; border: none; color: rgb(92, 92, 92); margin: 0px 0px 1px 45px !important;"><li class="alt" style="border-style: none none none solid; border-left-width: 3px; border-left-color: rgb(108, 226, 108); list-style: decimal-leading-zero outside; color: inherit; line-height: 18px; margin: 0px !important; padding: 0px 3px 0px 10px !important;">namespace ns1  // 命名空间 ns1 { <span style="white-space:pre"> </span>int a=0; <span style="white-space:pre"> </span>double b=1; <span style="white-space:pre"> </span>float tax() <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>return a*b <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>namespace ns2  // 嵌套的命名空间 ns2 <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>int age; <span style="white-space:pre"> </span>}<span style="white-space:pre"> </span> <span style="white-space:pre"> </span> } //  如果想输出命名空间 ns1 中乘员的数据,可以采用下面的方法 cout<<ns1::a<<endl; cout<<ns1::tax()<<endl; cout<<ns1::ns2::age<<endl;   // 需要依次指定外层和内层的命名空间名 </li></ol>


最后

以上就是内向冬瓜最近收集整理的关于作用域限定符(::)的用法的全部内容,更多相关作用域限定符(::)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部