::

::是運算符中等級最高的,它分為三種:全局作用域符,類作用域符,命名空間作用域符。他們都是左關聯(left-associativity)。他們的作用都是為了更明確的調用自己的對象或者函式。

基本介紹

  • 中文名:::
  • 實質:運算符
  • 種類:全局作用域符
  • 關聯:左關聯
全局作用,類作用,命名空間,舉例,

全局作用

全局作用域符號:當全局變數在局部函式中與其中某個變數重名,那么就可以用::來區分如:
char zhou=2; //全局變數
void sleep()
{
char zhou=3; //局部變數
zhou(局部變數) = zhou(局部變數) *zhou(局部變數) ;
::zhou(全局變數) =::zhou(全局變數) *zhou(局部變數);
}

類作用

作用域符號::的前面一般是類名稱,後面一般是該類的成員名稱,C++為了避免不同的類有名稱相同的成員而採用作用域的方式進行區分
如:A,B表示兩個類,在A,B中都有成員member。那么
A::member就表示類A中的成員member
B::member就表示類B中的成員member

命名空間

"::"是作用域限定符或者稱作作用域運算符或者作用域操作符(scope operator).例如命名空間
"::"作用:namespace::name

舉例

/*全局作用域符*/#include<iostream>int sum=5050;int main(){int arr[3],i;std::cout<<"input 3 num:" <<std::endl;for(i=0;i<3;i++)std::cin>>arr[i];int sum=0;for(i=0;i<3;i++)sum+=arr[i];for(i=0;i<3;i++)std::cout<<setw(4)<<arr[i] <<std::endl;std::cout<<"局部sum="<<sum <<std::endl;::sum+=sum;std::cout<<"全局sum=";std::cout<<::sum<<std::endl;//5056system("pause");return 0;//在這裡::是一元作用符}/*類作用域符*/#include<iostream>class Time{public:void setTime();void showTime();private:int hour;int minute;int sec;};void Time::setTime()/*類外聲明部分*/{std::cin>>hour;/*std命名空間的作用域*/std::cin>>minute;/*std命名空間的作用域*/std::cin>>sec;/*std命名空間的作用域*/}/*類外聲明*/void Time::showTime(){std::cout<<hour<<":"<<minute<<":"<<sec<<std::endl;/*std命名空間的作用域*/}int main(){Time time_1;time_1.setTime();time_1.showTime();system("pause");return 0;}

熱門詞條

聯絡我們