c++中冒號(hào)(:)和雙冒號(hào)(::)的使用說(shuō)明
更新時(shí)間:2013年07月24日 10:21:15 作者:
以下是對(duì)c++中冒號(hào)和雙冒號(hào)的用法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下
(1)表示機(jī)構(gòu)內(nèi)位域的定義(即該變量占幾個(gè)bit空間)
typedef struct _XXX{
unsigned char a:4;
unsigned char c;
} ; XXX
(2)構(gòu)造函數(shù)后面的冒號(hào)起分割作用,是類(lèi)給成員變量賦值的方法,初始化列表,更適用于成員變量的常量const型。
struct _XXX{
_XXX() : y(0xc0) {}
};
(3) public:和private:后面的冒號(hào),表示后面定義的所有成員都是公有或私有的,直到下一個(gè)"public:”或"private:”出現(xiàn)為止。"private:"為默認(rèn)處理。
(4)類(lèi)名冒號(hào)后面的是用來(lái)定義類(lèi)的繼承。
class 派生類(lèi)名 : 繼承方式 基類(lèi)名
{
派生類(lèi)的成員
};
繼承方式:public、private和protected,默認(rèn)處理是public。
2.雙冒號(hào)(::)用法
(1)表示“域操作符”
例:聲明了一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)void f(),但沒(méi)有在類(lèi)的聲明里給出f的定義,那么在類(lèi)外定義f時(shí),
就要寫(xiě)成void A::f(),表示這個(gè)f()函數(shù)是類(lèi)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)算符”。比如聲明了一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)voidf(),但沒(méi)有在類(lèi)的聲明里給出f的定義,那么在類(lèi)外定義f時(shí),就要寫(xiě)成voidA::f(),表示這個(gè)f()函數(shù)是類(lèi)A的成員函數(shù)。
:: 一般還有一種用法,就是直接用在全局函數(shù)前,表示是全局函數(shù)。當(dāng)類(lèi)的成員函數(shù)跟類(lèi)外的一個(gè)全局函數(shù)同名時(shí),考試,大提示在類(lèi)內(nèi)定義的時(shí)候,打此函數(shù)名默認(rèn)調(diào)用的是本身的成員函數(shù);如果要調(diào)用同名的全局函數(shù)時(shí),就必須打上::以示區(qū)別。比如在VC里,你可以在調(diào)用API函數(shù)時(shí),在API函數(shù)名前加::。
復(fù)制代碼 代碼如下:
typedef struct _XXX{
unsigned char a:4;
unsigned char c;
} ; XXX
(2)構(gòu)造函數(shù)后面的冒號(hào)起分割作用,是類(lèi)給成員變量賦值的方法,初始化列表,更適用于成員變量的常量const型。
復(fù)制代碼 代碼如下:
struct _XXX{
_XXX() : y(0xc0) {}
};
(3) public:和private:后面的冒號(hào),表示后面定義的所有成員都是公有或私有的,直到下一個(gè)"public:”或"private:”出現(xiàn)為止。"private:"為默認(rèn)處理。
(4)類(lèi)名冒號(hào)后面的是用來(lái)定義類(lèi)的繼承。
復(fù)制代碼 代碼如下:
class 派生類(lèi)名 : 繼承方式 基類(lèi)名
{
派生類(lèi)的成員
};
繼承方式:public、private和protected,默認(rèn)處理是public。
2.雙冒號(hào)(::)用法
(1)表示“域操作符”
例:聲明了一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)void f(),但沒(méi)有在類(lèi)的聲明里給出f的定義,那么在類(lèi)外定義f時(shí),
就要寫(xiě)成void A::f(),表示這個(gè)f()函數(shù)是類(lèi)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)算符”。比如聲明了一個(gè)類(lèi)A,類(lèi)A里聲明了一個(gè)成員函數(shù)voidf(),但沒(méi)有在類(lèi)的聲明里給出f的定義,那么在類(lèi)外定義f時(shí),就要寫(xiě)成voidA::f(),表示這個(gè)f()函數(shù)是類(lèi)A的成員函數(shù)。
:: 一般還有一種用法,就是直接用在全局函數(shù)前,表示是全局函數(shù)。當(dāng)類(lèi)的成員函數(shù)跟類(lèi)外的一個(gè)全局函數(shù)同名時(shí),考試,大提示在類(lèi)內(nèi)定義的時(shí)候,打此函數(shù)名默認(rèn)調(diào)用的是本身的成員函數(shù);如果要調(diào)用同名的全局函數(shù)時(shí),就必須打上::以示區(qū)別。比如在VC里,你可以在調(diào)用API函數(shù)時(shí),在API函數(shù)名前加::。
相關(guān)文章
C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例
這篇文章主要為大家介紹了C++實(shí)現(xiàn)主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01VSCode與Keil聯(lián)合開(kāi)發(fā)STM32的流程
這篇文章主要介紹了VSCode與Keil聯(lián)合開(kāi)發(fā)STM32的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Qt實(shí)現(xiàn)TCP客戶端和服務(wù)器通訊程序
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)TCP客戶端和服務(wù)器通訊程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08C語(yǔ)言實(shí)現(xiàn)奇數(shù)階魔方陣的方法
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)奇數(shù)階魔方陣的方法,涉及數(shù)組及相關(guān)數(shù)學(xué)函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02