<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來(lái),開(kāi)創(chuàng)未來(lái)!
    隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
    數(shù)據(jù)加載中……

    在類(lèi)的內(nèi)部定義新的類(lèi)型,并引伸出union的妙用

    在類(lèi)內(nèi)部其實(shí)是可以定義一些類(lèi)型的,比如struct、union、class,其實(shí)也就只有這三類(lèi)可以被定義,

    也只有這三類(lèi)可以定義它們各自的對(duì)象,然后“.”出來(lái)或者“->”出來(lái),C++中只有這三類(lèi)了。

    對(duì)于它們各自來(lái)說(shuō),在一個(gè)類(lèi)的內(nèi)部都可以有三種方式來(lái)定義它們,比如對(duì)于union,
    第一種方式://定義了一個(gè)union類(lèi)型,并且定義了一個(gè)屬于該類(lèi)型的對(duì)象un,因此sizeof(X)==4
    class X{
    public:
     union UN{
      int m_nX;
      char* pchar;
     }un;
    };
    第二種方式://定義了一個(gè)union類(lèi)型,但并沒(méi)有定義屬于該類(lèi)型的任何對(duì)象,因此sizeof(X)==0
    class X{
    public:
     union UN{
      int m_nX;
      char* pchar;
     };
    };
    第三種方式://定義了一個(gè)匿名的union類(lèi)型,因此也就只能在X內(nèi)部使用了,并且此種情況隱含著已經(jīng)

    在X中定義了一個(gè)屬于該匿名union類(lèi)型的對(duì)象,因此sizeof(X)==4,并且此種情況最為特殊,可以直接

    通過(guò)類(lèi)X的對(duì)象來(lái)使用m_nX和pchar,例如X x;x.m_nX=10;x.pchar="Hello World!";
    class X{
    public:
     union {
      int m_nX;
      char* pchar;
     };
    };
    對(duì)于前兩種方式,都在類(lèi)的內(nèi)部定義了一個(gè)新的具有名字的型別,因此可以用這種新的類(lèi)型來(lái)定義對(duì)應(yīng)

    于該類(lèi)型的對(duì)象,例如:X::UN myun;但是這種定義是要求類(lèi)內(nèi)部的union在定義時(shí)的修飾符為public,

    否則就不能在類(lèi)外部定義屬于他們的對(duì)象,而只能在給類(lèi)X內(nèi)部使用了。

    同理也可以知道在類(lèi)內(nèi)部通過(guò)typedef定義出來(lái)的新型別也是如此。

    需要說(shuō)明的是,union用類(lèi)里以第三種定義的方式出現(xiàn)的話(huà),會(huì)有很奇妙的效果,非常奇妙,或許在今

    后的編程過(guò)程中可以加以利用。m_nX和pchar共享一塊4個(gè)字節(jié)的內(nèi)存,只要不是同時(shí)需要m_nX和pchar

    出現(xiàn)的情況都可以只利用它們其中的一個(gè),從而節(jié)省了內(nèi)存開(kāi)銷(xiāo)。

    posted on 2008-07-13 20:52 so true 閱讀(988) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): C&C++

    評(píng)論

    # re: 在類(lèi)的內(nèi)部定義新的類(lèi)型,并引伸出union的妙用  回復(fù)  更多評(píng)論   

    你真是太厲害啦!受益匪淺!希望你能多寫(xiě)些這樣的好文章!
    2008-07-14 21:28 | pig
    主站蜘蛛池模板: 在线观看亚洲精品专区| 破了亲妺妺的处免费视频国产 | 亚洲成a人片77777kkkk| 久久午夜夜伦鲁鲁片免费无码| 最新猫咪www免费人成| 色偷偷亚洲第一综合网| 老司机在线免费视频| 搜日本一区二区三区免费高清视频| 免费电影在线观看网站| 亚洲动漫精品无码av天堂| 99爱在线精品免费观看| 一边摸一边爽一边叫床免费视频| 国产真人无遮挡作爱免费视频| 亚洲一区二区三区免费观看| 亚洲精品无码专区久久同性男| 羞羞网站免费观看| 亚洲一区二区在线免费观看| A毛片毛片看免费| 亚洲天堂免费在线| 亚洲日韩精品一区二区三区无码| 高清永久免费观看 | 亚洲人成色7777在线观看不卡| 亚洲.国产.欧美一区二区三区| 成人av免费电影| 日韩精品久久久久久免费| 亚洲日韩在线中文字幕综合 | 二个人看的www免费视频| 亚洲视频一区二区三区四区| AV在线播放日韩亚洲欧| xxxx日本在线播放免费不卡| 亚洲av无码一区二区三区天堂古代 | 久久丫精品国产亚洲av| 亚洲国产成人VA在线观看 | 你是我的城池营垒免费看| 亚洲午夜无码久久久久小说| 午夜亚洲AV日韩AV无码大全| 国产一级淫片免费播放| 999zyz**站免费毛片| 国产成人亚洲精品播放器下载| 久久精品亚洲乱码伦伦中文| 国产免费观看a大片的网站|