我是靠谱客的博主 内向冬瓜,最近开发中收集的这篇文章主要介绍作用域限定符(::)的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

[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. }

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

<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>


最后

以上就是内向冬瓜为你收集整理的作用域限定符(::)的用法的全部内容,希望文章能够帮你解决作用域限定符(::)的用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部