C++中的::的作用【轉】
(轉自:https://blog.csdn.net/zhanghuaichao/article/details/55676209?utm_source=blogxgwz0)
(1)作用域限定符,當在類體中直接定義函式時,不需要在函式名字的前面加上類名,但是在類體外實現函式定義的時候,必須加上類名並且加上作用域限定符。Student::Display();
(2)靜態資料成員既可以通過物件名引用,也可以通過類名加::來引用,
class Test
{
public:
Display();
private:
static int a;
}
Test::a;
(3)靜態成員函式,也是既可以通過物件名引用,也可以通過類名+::引用。
靜態成員函式的目的就是為了操作靜態資料成員,靜態成員函式引用不了非靜態的資料成員,除非傳進物件引數。
(4)引用在類中定義的 typedef新型別
class MyClass
{
public:
typedef int INT;
}
MyClass ::INT b;//宣告一個變數
而如果在private欄位中,則只能在類內使用
(5)有些時候我們會用到虛擬函式,就是在子類中對父類函式進行重寫,但是有些時候,比方說這個定製協議的時候,子類是對協議的具體內容,而在父類中可以對協議頭進行處理,所以有的時候需要在子類的重寫函式中呼叫父類的函式,這個時候要用到::作用域限定符。
(6)還有一個用途是當我們建立一個類,類有兩個方法,a方法和b方法,在a方法中呼叫b方法,就可以使用::當然不用也可以。當然這個首先得建立一個類物件去使用a方法,然後a方法中再呼叫b方法。當然這個呼叫這個b方法的時候也是傳進去了物件zhc的地址。
當然
class a
{
public:
int temp;
void display()
{
cout << "zhangchao" << endl;
cout<<temp;
}
void display1()
{
cout << "gaojie" << endl;
a::display();
}
};
int main()
{
a zhc;
zhc.temp = 5;
zhc.display1();
}
---------------------
作者:zhanghuaichao
來源:CSDN
原文:https://blog.csdn.net/zhanghuaichao/article/details/55676209?utm_source=copy
版權宣告:本文為博主原創文章,轉載請附上博文連結!