最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)解讀C++編程中的匿名類類型和位域

 更新時(shí)間:2016年01月25日 14:15:23   投稿:goldensun  
這篇文章主要介紹了C++編程中的匿名類類型和位域,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

匿名類類型
類可以是匿名的 - 也就是說,可以在沒有 identifier 的情況下聲明類。在將類名稱替換為 typedef 名稱時(shí),這會很有用,如下所示:

typedef struct
{
  unsigned x;
  unsigned y;
} POINT;

注意
上面示例中顯示的匿名類的用法對于保留與現(xiàn)有 C 代碼的兼容性很有用。在某些 C 代碼中,將 typedef 與匿名結(jié)構(gòu)結(jié)合使用是很普遍的。
如果您希望對類成員的引用就像它未包含在獨(dú)立類中的情況一樣出現(xiàn),則匿名類也很有用,如下所示:

struct PTValue
{
  POINT ptLoc;
  union
  {
    int iValue;
    long lValue;
  };
};

PTValue ptv;

在上面的代碼中,可以使用對象成員選定內(nèi)容運(yùn)算符 (iValue.) 訪問 ,如下所示:

int i = ptv.iValue;

匿名類受某些限制的約束。(有關(guān)匿名聯(lián)合的詳細(xì)信息,請參閱聯(lián)合。) 匿名類:
不能具有構(gòu)造函數(shù)或析構(gòu)函數(shù)。
不能作為函數(shù)的參數(shù)傳遞(除非使用省略號使類型檢查無效)。
無法作為函數(shù)中的返回值返回。

C++ 位域
類和結(jié)構(gòu)可包含比整型類型占用更少存儲空間的成員。這些成員被指定為位域。位域成員聲明符規(guī)范的語法如下:
語法

declarator : constant-expression

備注
(可選)declarator 是在程序中訪問成員的名稱。它必須是整型類型(包括枚舉類型)。 常數(shù)表達(dá)式指定結(jié)構(gòu)中成員所占據(jù)的位數(shù)。匿名位域 — 即不帶標(biāo)識符的位域成員,可用于填充。
注意
寬度為 0 的未命名位域強(qiáng)制將下一個(gè)位域與下一個(gè) type 邊界對齊,其中 type 是成員的類型。
下面的示例聲明包含位域的結(jié)構(gòu):

// bit_fields1.cpp
// compile with: /LD
struct Date {
  unsigned short nWeekDay : 3;  // 0..7  (3 bits)
  unsigned short nMonthDay : 6;  // 0..31 (6 bits)
  unsigned short nMonth  : 5;  // 0..12 (5 bits)
  unsigned short nYear   : 8;  // 0..100 (8 bits)
};

Date 類型的對象的概念上的內(nèi)存布局如下圖所示。

2016125141100380.jpeg (448×116)

數(shù)據(jù)對象的內(nèi)容布局
請注意,nYear 的長度為 8 位,并且會溢出聲明類型 unsigned short 的字邊界。因此,它始于新 unsigned short 的開頭。并不必使所有位域均適合基礎(chǔ)類型的對象;根據(jù)聲明中請求的位數(shù)來分配新的存儲單元。
如果結(jié)構(gòu)的聲明包含長度為 0 的未命名字段(如以下示例所示),

// bit_fields2.cpp
// compile with: /LD
struct Date {
  unsigned nWeekDay : 3;  // 0..7  (3 bits)
  unsigned nMonthDay : 6;  // 0..31 (6 bits)
  unsigned      : 0;  // Force alignment to next boundary.
  unsigned nMonth  : 5;  // 0..12 (5 bits)
  unsigned nYear   : 8;  // 0..100 (8 bits)
};

則內(nèi)存布局如下圖中所示。

2016125141203296.jpeg (525×80)

帶有零長度位域的數(shù)據(jù)對象的布局
位域的基礎(chǔ)類型必須是整型類型。

相關(guān)文章

  • C 語言二叉樹幾種遍歷方法詳解及實(shí)例

    C 語言二叉樹幾種遍歷方法詳解及實(shí)例

    這篇文章主要介紹了C 語言二叉樹幾種遍歷方法詳解及實(shí)例的相關(guān)資料,二叉樹在數(shù)據(jù)結(jié)構(gòu)當(dāng)中是非常重要的知識要點(diǎn),這里對二叉樹進(jìn)行了總結(jié),需要的朋友可以參考下
    2017-01-01
  • 使用WindowsAPI實(shí)現(xiàn)播放PCM音頻的方法

    使用WindowsAPI實(shí)現(xiàn)播放PCM音頻的方法

    這篇文章主要介紹了使用WindowsAPI實(shí)現(xiàn)播放PCM音頻的方法,很實(shí)用的一個(gè)功能,需要的朋友可以參考下
    2014-08-08
  • C++中菱形繼承的解釋與處理詳解

    C++中菱形繼承的解釋與處理詳解

    菱形繼承是多重繼承中跑不掉的,Java拿掉了多重繼承,輔之以接口。C++中雖然沒有明確說明接口這種東西,但是只有純虛函數(shù)的類可以看作Java中的接口,下面這篇文章主要給大家介紹了關(guān)于C++中菱形繼承的解釋與處理的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • C++類實(shí)現(xiàn)通訊錄功能

    C++類實(shí)現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C++類實(shí)現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Qt使用QPainter繪制3D立方體

    Qt使用QPainter繪制3D立方體

    這篇文章主要為大家詳細(xì)介紹了Qt使用QPainter繪制3D立方體,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C語言構(gòu)建連連看游戲(矩陣方式)

    C語言構(gòu)建連連看游戲(矩陣方式)

    這篇文章主要為大家詳細(xì)介紹了C語言構(gòu)建連連看游戲,采用矩陣方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C++之Primer類型轉(zhuǎn)換方式

    C++之Primer類型轉(zhuǎn)換方式

    這篇文章主要介紹了C++之Primer類型轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C語言實(shí)現(xiàn)三子棋實(shí)例代碼

    C語言實(shí)現(xiàn)三子棋實(shí)例代碼

    大家好,本篇文章主要講的是C語言實(shí)現(xiàn)三子棋實(shí)例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 用C語言進(jìn)行最基本的socket編程

    用C語言進(jìn)行最基本的socket編程

    這篇文章主要介紹了C語言下socket編程的基本知識講解,包括最基本的客戶端發(fā)送及服務(wù)器端接受數(shù)據(jù)的實(shí)現(xiàn),需要的朋友可以參考下
    2015-11-11
  • C++示例講解觀察者設(shè)計(jì)模式

    C++示例講解觀察者設(shè)計(jì)模式

    觀察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_發(fā)過程中使用最多的設(shè)計(jì)模式,本文首先概述觀察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀察者模式在C++中的應(yīng)用,最后是對觀察者模式的應(yīng)用場景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)
    2022-12-12

最新評論

嘉峪关市| 光山县| 刚察县| 左云县| 五大连池市| 尖扎县| 宜宾县| 年辖:市辖区| 车险| 奇台县| 双峰县| 公安县| 麦盖提县| 朝阳区| 航空| 巨野县| 铜梁县| 柯坪县| 绥中县| 鄄城县| 荆州市| 南召县| 白河县| 庐江县| 江西省| 尼木县| 石楼县| 襄垣县| 子长县| 霸州市| 武山县| 循化| 寿宁县| 庄河市| 泽库县| 剑川县| 耒阳市| 拜泉县| 绵阳市| 朝阳市| 株洲县|