C++ . -> :: 符號含義與區別
阿新 • • 發佈:2018-12-02
.和->的區別
結構體
首先介紹一下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),含義和用法如下:
-
在類外部宣告成員函式。
void Point::Area(){};
-
呼叫全域性函式;表示引用成員函式變數及作用域,作用域成員運算子 例:
System::Math::Sqrt()
System.Math.Sqrt()
。 -
呼叫類的靜態方法: 如:
CDisplay::display()
。
把域看作是一個可視視窗全域性域的物件在它被定義的整個檔案裡,一直到檔案末尾都是可見的。在一個函式內被定義的物件是局域的(local scope), 它只在定義其的函式體內可見。每個類維持一個域,在這個域之外 ,它的成員是不可見的。類域操作符告訴編譯器後面的識別符號可在該類的範圍內被找到。
One more thing
更多關於人工智慧、Python、C++、計算機等知識,歡迎訪問我的個人部落格進行交流, 點這裡~~