c++中冒號(:)和雙冒號(::)的使用說明

來源:互聯網
上載者:User

以下是對c++中冒號和雙冒號的用法進行了介紹,需要的朋友可以過來參考下 

(1)表示機構內位域的定義(即該變數占幾個bit空間)

複製代碼 代碼如下:
typedef struct _XXX{
          unsigned char a:4;
          unsigned char c;
} ; XXX


(2)建構函式後面的冒號起分割作用,是類給成員變數賦值的方法,初始化列表,更適用於成員變數的常量const型。

複製代碼 代碼如下:
struct _XXX{
          _XXX() : y(0xc0) {}
};


(3) public:和private:後面的冒號,表示後面定義的所有成員都是公有或私人的,直到下一個"public:”或"private:”出現為止。"private:"為預設處理。
(4)類名冒號後面的是用來定義類的繼承。

複製代碼 代碼如下:
class 衍生類別名 : 繼承方式 基類名
{
    衍生類別的成員
};


繼承方式:public、private和protected,預設處理是public。
2.雙冒號(::)用法
(1)表示“網域作業符”
例:聲明了一個類A,類A裡聲明了一個成員函數void f(),但沒有在類的聲明裡給出f的定義,那麼在類外定義f時,
就要寫成void A::f(),表示這個f()函數是類A的成員函數。

(2)直接用在全域函數前,表示是全域函數
例:在VC裡,你可以在調用API 函數裡,在API函數名前加::

(3)表示引用成員函數及變數,範圍成員運算子
例:System::Math::Sqrt() 相當於System.Math.Sqrt()

VC中如下
::是C++裡的“範圍分解運算子”。比如聲明了一個類A,類A裡聲明了一個成員函數voidf(),但沒有在類的聲明裡給出f的定義,那麼在類外定義f時,就要寫成voidA::f(),表示這個f()函數是類A的成員函數。

:: 一般還有一種用法,就是直接用在全域函數前,表示是全域函數。當類的成員函數跟類外的一個全域函數同名時,考試,大提示在類內定義的時候,打此函數名預設 調用的是本身的成員函數;如果要調用同名的全域函數時,就必須打上::以示區別。比如在VC裡,你可以在調用API函數時,在API函數名前加::。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.