1.冒號(:)用法
(1)表示機(jī)構(gòu)內(nèi)位域的定義(即該變量占幾個bit空間)
typedef struct _XXX{
unsigned char a:4;
unsigned char c;
} ; XXX
(2)構(gòu)造函數(shù)后面的冒號起分割作用,是類給成員變量賦值的方法,初始化列表,更適用于成員變量的常量const型。
struct _XXX{
_XXX() : y(0xc0) {}
};
(3) public:和private:后面的冒號,表示后面定義的所有成員都是公有或私有的,直到下一個"public:”或"private:”出現(xiàn)為止。"private:"為默認(rèn)處理。
(4)類名冒號后面的是用來定義類的繼承。
class 派生類名 : 繼承方式 基類名
{
派生類的成員
};
繼承方式:public、private和protected,默認(rèn)處理是public。
2.雙冒號(::)用法
(1)表示“域操作符”
例:聲明了一個類A,類A里聲明了一個成員函數(shù)void f(),但沒有在類的聲明里給出f的定義,那么在類外定義f時,
就要寫成void A::f(),表示這個f()函數(shù)是類A的成員函數(shù)。
(2)直接用在全局函數(shù)前,表示是全局函數(shù)
例:在VC里,你可以在調(diào)用API 函數(shù)里,在API函數(shù)名前加::
(3)表示引用成員函數(shù)及變量,作用域成員運(yùn)算符
例:System::Math::Sqrt() 相當(dāng)于System.Math.Sqrt()
——————————————————————————————————————
VC中如下
::是C++里的“作用域分解運(yùn)算符”。比如聲明了一個類A,類A里聲明了一個成員函數(shù)voidf(),但沒有在類的聲明里給出f的定義,那么在類外定義f時,就要寫成voidA::f(),表示這個f()函數(shù)是類A的成員函數(shù)。
:: 一般還有一種用法,就是直接用在全局函數(shù)前,表示是全局函數(shù)。當(dāng)類的成員函數(shù)跟類外的一個全局函數(shù)同名時,考試,大提示在類內(nèi)定義的時候,打此函數(shù)名默認(rèn)調(diào)用的是本身的成員函數(shù);如果要調(diào)用同名的全局函數(shù)時,就必須打上::以示區(qū)別。比如在VC里,你可以在調(diào)用API函數(shù)時,在API函數(shù)名前加::。(編輯:)