C++ 箭頭-> 雙冒號:: 點號.操作符區別
首先介紹一下C++中的結構。對於一個結構來說,
struct MyStruct {
int member_a;
};
如果有個變量MyStruct s,那麼使用其中的成員元素時可以用
s.member_a = 1;
如果採用指針方法訪問,比如MyStruct * ps,那麼同樣的訪問必須用箭頭號:
ps->member_a = 1;
::只用在類成員函數和類成員變量中。比如,聲明一個類:
class CA {
public:
int ca_var;
int add(int a, int b);
int add(int a);
};
那麼在實現這個函數時,必須這樣書寫:
int CA::add(int a, int b)
{
return a + b;
}
另外,雙冒號也常常用於在類變量內部作爲當前類實例的元素進行表示,比如:
int CA::add(int a)
{
return a + ::ca_var;
}
表示當前類實例中的變量ca_var。
c++中當定義類對象是指針對象時候,就需要用到->指向類中的成員;當定義一般對象時候時就需要用到"."指向類中的成員.......
例如:
class A
{
public
play();
}
如果定義如下:
A *p則:p->play()使用; 左邊是結構指針。
A p 則:p.paly()使用; 左邊是結構變量。