c++的:: . :-的区别
生活随笔
收集整理的這篇文章主要介紹了
c++的:: . :-的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
::是域作用符,是各種域性質的實體(比如類(不是對象)、名字空間等)調用其成員專用的。
(如果有個局部變量與全局變量同名(假設都是int a;),默認調用的 a 是局部變量,如果要訪問全局變量a,就要這么寫“::a”。使用域作用符來加以區別;前面沒寫具體的域名,就是指默認域).是成員作用符,是對象專用的。比如
struct A
{
int InnerPara;
static int StPara;
} a;
a訪問時用“.”,如a.InnerPara;A訪問用“::”,如A::StPara;名字空間等)調用其成員專用的。
(如果有個局部變量與全局變量同名(假設都是int a;),默認調用的 a 是局部變量,如果要訪問全局變量a,就要這么寫“::a”。使用域作用符來加以區別;前面沒寫具體的域名,就是指默認域).是成員作用符,是對象專用的。比如
struct A
{
int InnerPara;
static int StPara;
} a;
a訪問時用“.”,如a.InnerPara;A訪問用“::”,如A::StPara;
冒號(:)用法
(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。
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。
******************************************************************************
|
|
如果有個變量MyStruct s,那么使用其中的成員元素時可以用:
| 1 |
|
如果采用指針方法訪問,比如MyStruct * ps,那么同樣的訪問就必須使用如下形式:
|
|
或者
|
|
c++中當定義類對象是指針對象時候,就需要用到->指向類中的成員;當定義一般對象時候時就需要用到"."指向類中的成員。
例如:
|
|
如果定義如下:
A *p則使用:p->play(); 左邊是結構指針。
A p 則使用:p.paly(); 左邊是結構變量。
總結:
箭頭(->):左邊必須為指針;
點號(.):左邊必須為實體。
總結
以上是生活随笔為你收集整理的c++的:: . :-的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA学习1
- 下一篇: 关于空指针(指针指向为NULL)和voi