1. 程式人生 > >C++中的::的作用【轉】

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!