1.點(.)操作符和箭頭(->)操作符
當(dāng)定義類對象是指針對象時候,就需要用到 “->” 指向類中的成員;當(dāng)定義一般對象時候時就需要用到 “.” 指向類中的成員…….
例如:
class A
{
public:
play();
}
如果定義如下:
A *p則:p->play()使用; 左邊是結(jié)構(gòu)指針。
A p 則:p.paly()使用; 左邊是結(jié)構(gòu)變量。
總結(jié):
箭頭(->):左邊必須為指針;
點號(.):左邊必須為實體。
2.作用域符號::
(1) 作用域符號::的前面一般是類名稱,后面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而采用作用域的方式進(jìn)行區(qū)分
如:A,B表示兩個類,在A,B中都有成員member。那么
A::member就表示類A中的成員member
B::member就表示類B中的成員member
(2)全局作用域符號:當(dāng)全局變量在局部函數(shù)中與其中某個變量重名,那么就可以用::來區(qū)分如:
char zhou; //全局變量 void sleep()
{
char zhou; //局部變量 char(局部變量) = char(局部變量) *char(局部變量) ;
::char(全局變量) =::char(全局變量) *char(局部變量);
}
(3)::是C++里的“作用域分解運算符”。比如聲明了一個類A,類A里聲明了一個成員函數(shù)voidf(),但沒有在類的聲明里給出f的定義,那么在類外定義f時,就要寫成voidA::f(),表示這個f()函數(shù)是類A的成員函數(shù)。例如:
class CA {
public:
int ca_var;
int add(int a, int b);
int add(int a);
};
//那么在實現(xiàn)這個函數(shù)時,必須這樣書寫:
int CA::add(int a, int b)
{
return a + b;
}
//另外,雙冒號也常常用于在類變量內(nèi)部作為當(dāng)前類實例的元素進(jìn)行表示,比如:
int CA::add(int a)
{
return a + ::ca_var;
}
//表示當(dāng)前類實例中的變量ca_var。