• <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 閱讀(976) 評論(0)  編輯 收藏 引用

            <2009年8月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠色婷婷久久综合频道日韩 | 一本色综合久久| 国内精品久久久久影院优| 99久久免费国产精品特黄| 久久有码中文字幕| 久久久久亚洲精品男人的天堂| 狠狠久久综合伊人不卡| 久久久WWW成人| 久久综合九色综合久99| 人妻少妇精品久久| 久久精品国产99久久久古代| 久久久噜噜噜久久中文字幕色伊伊 | 久久夜色撩人精品国产| 亚洲午夜无码久久久久小说| 午夜精品久久久久久久无码| 狠狠色婷婷久久综合频道日韩 | 色综合久久天天综合| 久久99国产精品成人欧美| 久久天天躁狠狠躁夜夜av浪潮| 亚洲精品国产第一综合99久久| 18岁日韩内射颜射午夜久久成人 | 亚洲精品乱码久久久久久蜜桃图片| 久久无码专区国产精品发布| 久久精品亚洲精品国产色婷 | 久久国产亚洲精品| 久久99精品国产自在现线小黄鸭 | 久久久久人妻一区二区三区| 久久A级毛片免费观看| 99精品伊人久久久大香线蕉| 一本久久免费视频| 国内精品久久久久| 区久久AAA片69亚洲| 国产亚洲综合久久系列| 久久亚洲国产成人精品无码区| 无码日韩人妻精品久久蜜桃| 国产精品久久久久天天影视| 伊人久久五月天| 老司机国内精品久久久久| 99久久无色码中文字幕人妻 | 久久精品亚洲福利| 浪潮AV色综合久久天堂|