c 中的冒號( )和雙冒號( )運算子

2021-09-05 09:21:38 字數 862 閱讀 9027

一、冒號(:)用法

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

1 typedef struct _*** ***;

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

1 struct _***

4 5 };

(3) public:和private:後面的冒號,表示後面定義的所有成員都是公有或私有的,直到下乙個"public:」或"private:」出現為止。"private:"為預設處理。

(4)類名冒號後面的是用來定義類的繼承。

1 class 派生類名 : 繼承方式 基類名

2 ;5 繼承方式:public、private和protected,預設處理是public。

二、雙冒號(::)用法

(1)表示「域操作符」

例:宣告了乙個類a,類a裡宣告了乙個成員函式void f(),但沒有在類的宣告裡給出f的定義,那麼在類外定義f時, 就要寫成void a::f(),表示這個f()函式是類a的成員函式。

(2)直接用在全域性函式前,表示是全域性函式

例::: 一般還有一種用法,就是直接用在全域性函式前,表示是全域性函式。當類的成員函式跟類外的乙個全域性函式同名時,在類內定義的時候,則此函式名預設呼叫的是本身的成員函式;如果要呼叫同名的全域性函式時,就必須打上::以示區別。比如在vc裡,你可以在呼叫api函式時,在api函式名前加::

(3)表示引用成員函式及變數,作用域成員運算子

例:system::math::sqrt() 相當於system.math.sqrt()

函式的擴充套件 雙冒號運算子

雙冒號運算子提案 提出了 函式繫結 function bind 運算子,用來取代call bind呼叫。函式繫結運算子是併排的兩個冒號 雙冒號左邊是乙個物件,右邊是乙個函式。該運算子會自動將左邊的物件,作為上下文環境 即this物件 繫結到右邊的函式上面。foo bar 等同於 bar.bind f...

c 中冒號( )和雙冒號( )的用法

1.冒號 用法 1 表示機構內位域的定義 即該變數佔幾個bit空間 typedef struct 2 建構函式後面的冒號起分割作用,是類給成員變數賦值的方法,初始化列表,更適用於成員變數的常量const型。struct 3 public 和private 後面的冒號,表示後面定義的所有成員都是公有或...

c 中冒號( )和雙冒號( )的用法

1.冒號 用法 1 表示機構內位域的定義 即該變數佔幾個bit空間 typedef struct 2 建構函式後面的冒號起分割作用,是類給成員變數賦值的方法,初始化列表,更適用於成員變數的常量const型。st 1.冒號 用法 1 表示機構內位域的定義 即該變數佔幾個bit空間 typedef st...