1. 程式人生 > >C++ . -> :: 符號含義與區別

C++ . -> :: 符號含義與區別

.和->的區別

結構體

首先介紹一下C++中的結構。對於一個結構:

struct MyStruct
{
  int member_a;
};

如果有個變數MyStruct s,那麼使用其中的成員元素時可以用:

s.member_a = 1;

如果採用指標方法訪問,比如MyStruct * ps,那麼同樣的訪問就必須使用如下形式:

(*ps).member_a = 1;

或者

ps->member_a = 1;

c++中當定義類物件是指標物件時候,就需要用到->指向類中的成員;當定義一般物件時候時就需要用到"."指向類中的成員。
例如:

class A
{  
    public play();
}

如果定義如下:

A *p則使用:p->play(); 左邊是結構指標。
A p 則使用:p.paly(); 左邊是結構變數。

總結:

  • 箭頭(->):左邊必須為指標;
  • 點號(.):左邊必須為實體。

::的用法

雙冒號 :: 操作符被稱為域操作符(scope operator),含義和用法如下:

  1. 在類外部宣告成員函式。void Point::Area(){};

  2. 呼叫全域性函式;表示引用成員函式變數及作用域,作用域成員運算子 例:System::Math::Sqrt()

    相當於System.Math.Sqrt()

  3. 呼叫類的靜態方法: 如:CDisplay::display()

把域看作是一個可視視窗全域性域的物件在它被定義的整個檔案裡,一直到檔案末尾都是可見的。在一個函式內被定義的物件是局域的(local scope), 它只在定義其的函式體內可見。每個類維持一個域,在這個域之外 ,它的成員是不可見的。類域操作符告訴編譯器後面的識別符號可在該類的範圍內被找到。


One more thing

更多關於人工智慧、Python、C++、計算機等知識,歡迎訪問我的個人部落格進行交流, 點這裡~~