::

::是運算符中等級最高的,它分為三種:全局作用域符,類作用域符,命名空間作用域符。他們都是左關聯(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; // 5056
system("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;
}
check!

熱門詞條

聯絡我們