::是運算符中等級最高的,它分爲三種:全局做用域符,類做用域符,命名空間做用域符。他們都是左關聯(left-associativity)。他們的做用都是爲了更明確的調用本身的對象或者函數。ide
全局做用域符號:當全局變量在局部函數中與其中某個變量重名,那麼就能夠用::來區分如:
char zhou; //全局變量
void sleep()
{
char zhou; //局部變量
zhou(局部變量) = zhou(局部變量) *zhou(局部變量) ;
::zhou(全局變量) =::zhou(全局變量) *zhou(局部變量);
}函數
做用域符號::的前面通常是類名稱,後面通常是該類的成員名稱,C++爲了不不一樣的類有名稱相同的成員而採用做用域的方式進行區分
如:A,B表示兩個類,在A,B中都有成員member。那麼
A::member就表示類A中的成員member
B::member就表示類B中的成員memberurl
"::"是做用域限定符或者稱做做用域運算符或者做用域操做符(scope operator).例如命名空間spa
"::"做用:namespace::namehtm
好比說你在全局定義了一個變量str,而後在函數裏面又定義了這個str名字的變量的,這個時候你要是在函數裏面直接寫str,那麼就是訪問的函數內部的變量的。沒法訪問外部變量的。 這是正常的現象的。可是若是你想訪問外部變量的話,那麼就能夠使用::str來訪問的。就不會是訪問內部變量了。。