• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            asm, c, c++ are my all
            -- Core In Computer
            posts - 139,  comments - 123,  trackbacks - 0

            ********************************************\
            |????歡迎轉載, 但請保留作者姓名和原文鏈接, 祝您進步并共勉!???? |
            \********************************************/


            C++對象模型(10) - 3.2 Data Member Layout

            作者: Jerry Cat
            時間: 2006/11/15
            鏈接:?
            http://www.shnenglu.com/jerysun0818/archive/2006/11/15/15192.html


            3.2 Data Member Layout

            class Point3d {
            public:
            ?? // ...
            private:
            ?? float x;
            ?? static List<Point3d*> *freeList;
            ?? float y;
            ?? static const int chunkSize = 250;
            ?? float z;
            };
            the nonstatic data members are set down in the order of their declaration(按聲明的順序) within each class object (any intervening static data members, such as freeList and chunkSize, are ignored). In our example, then, each Point3d object consists of three float members in order: x, y, z. The static data members are stored in the program's data segment independent of individual class objects.

            The Standard requires within an access section (the private, public, or protected section of a class declaration) only that the members be set down such that "later members have higher addresses within a class object" (Section 9.2 of the Standard). That is, the members are not required to be set down contiguously.(可以不連續但必須從低到高)

            What might intervene between the declared members? Alignment constraints on the type of a succeeding member may require padding. This is true both of C and C++, and in this case, the member layout of the two languages is in current practice the same.(對齊)

            虛表指針在哪兒? Traditionally, it has been placed after all the explicitly declared members of the class. More recently, it has been placed at the beginning of the class object. The Standard, by phrasing the layout requirement as it does, allows the compiler the freedom to insert these internally generated members anywhere, even between those explicitly declared by the programmer.

            In practice, multiple access sections are concatenated together into one contiguous block in the order of declaration.編譯器幫你同類項合并 No overhead is incurred by the access section specifier or the number of access levels. For example, declaring eight members in one access section or eight separate access sections in practice results in the same-sized objects.

            posted on 2006-11-15 23:34 Jerry Cat 閱讀(977) 評論(0)  編輯 收藏 引用

            <2006年9月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国产亚洲av日韩| 久久综合鬼色88久久精品综合自在自线噜噜| 久久精品国产亚洲AV不卡| 久久久久亚洲AV成人网人人软件| 久久播电影网| 久久精品国产亚洲AV嫖农村妇女| 一本久久久久久久| 日韩一区二区三区视频久久| 天堂久久天堂AV色综合| 97精品国产97久久久久久免费| 久久综合伊人77777麻豆| 麻豆AV一区二区三区久久| 国内精品久久久久久不卡影院| 免费久久人人爽人人爽av| 亚洲狠狠久久综合一区77777| 欧美亚洲国产精品久久| 久久青青草原国产精品免费 | av午夜福利一片免费看久久| 国产精品免费久久久久久久久| 久久国产色av免费看| 精品无码久久久久久国产| 久久久久久久97| 99久久国产精品免费一区二区| 久久久久婷婷| 国产精品欧美久久久久天天影视| 欧美黑人激情性久久| 久久婷婷色香五月综合激情| 久久精品国产亚洲av瑜伽| 色综合久久天天综合| 久久精品国产亚洲AV麻豆网站 | 狠狠色婷婷综合天天久久丁香 | 日日躁夜夜躁狠狠久久AV| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产午夜精品久久久久九九电影| 久久久亚洲欧洲日产国码aⅴ| 国产精品久久久久免费a∨| 婷婷久久综合九色综合绿巨人| 国产精品成人久久久久久久| 99久久99久久精品国产片果冻| 久久精品国产半推半就| 婷婷综合久久中文字幕|