青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

asm, c, c++ are my all
-- Core In Computer
posts - 139,  comments - 123,  trackbacks - 0

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


1.2 A Keyword Distinction

作者: Jerry Cat
時間: 2006/04/20
鏈接: http://www.shnenglu.com/jerysun0818/archive/2006/04/22/6064.html

-------------------------
unequivocal: 毫不含糊的
pedestrian:? 步行者; 步行的, 呆板的, 通俗的
infamous:??? 聲名狼藉的
strike aside:閃躲開
brandish:??? 揮舞(n. & v.)
fledgling:?? n.羽毛初長的雛鳥, 羽翼未豐無經驗的人, 初出茅廬的人
underpinning:基礎, 支柱, 支撐
discourse:?? 談話, 演說, 演講, 論文(n. & v.)

C++的struct 與 class有惱人的曖昧關系, 表面上struct里沒顯式說明存儲權限的全是public而class則全是private, 事實卻并非如此簡單當考慮到與C的兼容時, 尤其是對待C中的tricks時, 更是traps多多, 地雷密布!

A C program's trick is sometimes a C++ program's trap. One example of this is the use of a one-element array at the end of a struct to allow individual struct objects to address variable-sized arrays:

struct mumble {
?? /* stuff */
?? char pc[ 1 ];
};

// grab a string from file or standard input
// allocate memory both for struct & string

struct mumble *pmumb1 = ( struct mumble* )
?? malloc(sizeof(struct mumble)+strlen(string)+1);//在C中內存連續分布的, 但若考慮到
?? //這是在C++中, struct基本上就是類, 這類的數據成員與外來(參)變量的"tricky 捆綁式"
?? //內存布局將導致派生類的數據成員"插不進去"從而導致類的數據成員內存布局不連續!
?? //所以C的trick是非標準的不能濫用!

strcpy( &mumble.pc, string );
This may or may not translate well when placed within a class declaration that

1). specifies multiple access sections containing data,
2). derives from another class or is itself the object of derivation, or
3). defines one or more virtual functions.

The data members within a single access section are guaranteed within C++ to be laid out in the order of their declaration. The layout of data contained in multiple access sections, however, is left undefined. In the following declaration, for example, the C trick may or may not work, depending on whether the protected data members are placed before or after those declared private:

class stumble {
public:
?? // operations ...
protected:
?? // protected stuff
private:
?? /* private stuff */
?? char pc[ 1 ];
};
?
Similarly, the layout of data members of the base and derived classes is left undefined, thereby also negating any guarantee that the trick might work. The presence of a virtual function also places the trick's viability in question. The best advice is not to do it. (Chapter 3 discusses these layout issues in greater detail.)

//接上
If a programmer absolutely needs a data portion of an arbitrarily complex C++ class to have the look and feel of an equivalent C declaration, that portion is best factored out into an independent struct declaration. The original idiom for combining this C portion with its C++ part (see [KOENIG93]) was to derive the C++ part from the C struct:

struct C_point { ... };
class Point : public C_point { ... };
thus supporting both the C and C++ usage:

extern void draw_line( Point, Point );
extern "C" void draw_rect ( C_point, C_Point );

draw_line( Point( 0, 0 ), Point( 100, 100 ));
draw_rect( Point( 0, 0 ), Point( 100, 100 ));
This idiom is no longer recommended, however, because of changes to the class inheritance layout in some compilers (for example, the Microsoft C++ compiler) in support of the virtual function mechanism (see Section 3.4 for a discussion). Composition, rather than inheritance, is the only portable method of combining C and C++ portions of a class (the conversion operator provides a handy extraction method):

struct C_point { ... };

class Point {
public:
?? operator C_point() { return _c_point; }
?? // ...
private:
?? C_point _c_point;
?? // ...
};

強烈不推薦這種種"淫巧",? 不過在C/C++混合編程時你還不得不用它:)
One reasonable use of the C struct in C++, then, is when you want to pass all or part of a complex class object to a C function. This struct declaration serves to encapsulate that data and guarantees a compatible C storage layout. This guarantee, however, is maintained only under composition. Under inheritance, the compiler decides whether additional data members are inserted within the base struct subobject (again, see Section 3.4 for a discussion, as well as Figures 3.2(a) and 3.2(b)).

posted on 2006-04-22 01:23 Jerry Cat 閱讀(670) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆檔案

最新隨筆

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合亚洲社区| 欧美性jizz18性欧美| 国产在线高清精品| 欧美在线视频一区二区| 亚洲欧美综合另类中字| 国产综合自拍| 免费国产自线拍一欧美视频| 久久全国免费视频| 亚洲人体1000| 一本色道久久加勒比精品| 国产精品久线观看视频| 欧美综合第一页| 毛片一区二区| 一区二区三区偷拍| 亚洲欧美成人一区二区在线电影| 国产亚洲欧洲一区高清在线观看| 麻豆久久精品| 欧美日韩国产黄| 久久福利毛片| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久精品一区| 欧美激情偷拍| 欧美在线中文字幕| 欧美成人免费网| 亚洲欧美视频在线观看| 久久久精品视频成人| 中文在线不卡视频| 久久久精品五月天| 亚洲性人人天天夜夜摸| 久久久精品动漫| 亚洲免费在线观看视频| 蜜桃av一区二区| 久久国产福利国产秒拍| 欧美国产精品专区| 久久夜色精品国产亚洲aⅴ| 欧美片第1页综合| 蜜乳av另类精品一区二区| 国产精品www.| 亚洲精品国产拍免费91在线| 国产午夜精品美女视频明星a级| 亚洲国产91| 亚洲电影免费| 欧美专区福利在线| 午夜精品久久久| 欧美日韩美女在线| 亚洲第一伊人| 在线观看亚洲a| 欧美在线电影| 欧美一二区视频| 欧美色图麻豆| 亚洲精品日韩综合观看成人91| 国模吧视频一区| 午夜精品久久久久久久99水蜜桃| 夜夜嗨一区二区三区| 欧美69视频| 欧美黑人多人双交| 在线精品视频在线观看高清 | 亚洲国产精品999| 在线观看一区二区精品视频| 欧美伊人久久久久久久久影院 | 免费欧美网站| 国内精品伊人久久久久av一坑| 亚洲一二三区在线观看| 亚洲欧美另类在线观看| 欧美日韩亚洲一区二区三区在线观看 | 另类综合日韩欧美亚洲| 久久久久久久久蜜桃| 国产午夜精品美女毛片视频| 亚洲一区二区三区精品动漫| 亚洲砖区区免费| 国产精品色一区二区三区| 一区二区三区成人| 欧美一区二区啪啪| 国产一区二区三区成人欧美日韩在线观看 | 亚洲欧洲精品成人久久奇米网| 美女精品国产| 亚洲精品一二三| 亚洲欧美在线一区二区| 国产欧美亚洲日本| 久久久久国产精品厨房| 欧美激情网站在线观看| 亚洲美女中文字幕| 国产精品成人免费视频| 校园激情久久| 欧美成人一区二区三区| 日韩写真视频在线观看| 国产精品久久久久久福利一牛影视| 亚洲一区三区电影在线观看| 久久久久一区二区| 最新日韩中文字幕| 国产精品99免费看 | 91久久精品国产91性色| 亚洲天堂第二页| 国产欧美日韩一区二区三区| 欧美专区18| 亚洲人成艺术| 性久久久久久| 在线观看一区二区视频| 欧美日韩大片| 欧美在线视频全部完| 亚洲高清视频的网址| 亚洲欧美三级伦理| 亚洲电影观看| 国产精品私人影院| 蜜桃av噜噜一区| 亚洲欧美日韩国产成人精品影院| 久热精品在线视频| 亚洲婷婷在线| 亚洲国产精品久久久久秋霞蜜臀 | 欧美日韩国产不卡在线看| 午夜在线视频观看日韩17c| 欧美激情aaaa| 久久久久.com| 亚洲欧美亚洲| 日韩亚洲欧美一区| 极品av少妇一区二区| 国产精品久久久久久影院8一贰佰| 葵司免费一区二区三区四区五区| 亚洲少妇最新在线视频| 亚洲高清资源| 久久尤物视频| 亚洲欧美大片| 亚洲午夜一级| 一本色道88久久加勒比精品| 一区二区在线观看视频| 国产日韩欧美精品| 国产精品久久久久久久第一福利| 蜜月aⅴ免费一区二区三区| 欧美一区二区成人6969| 亚洲网站在线| 在线中文字幕一区| 亚洲日本视频| 91久久精品日日躁夜夜躁国产| 牛牛精品成人免费视频| 久久亚洲综合| 久久影院午夜论| 久久综合久色欧美综合狠狠| 欧美一区二区三区久久精品| 亚洲欧美999| 亚洲丝袜av一区| 亚洲一区日韩在线| 亚洲欧美国产77777| 亚洲一区二区三区高清| 一本色道**综合亚洲精品蜜桃冫| 最新国产の精品合集bt伙计| 亚洲国产aⅴ天堂久久| 亚洲国产精品激情在线观看| 一区二区在线免费观看| 在线观看91久久久久久| 亚洲激情视频| 日韩五码在线| 亚洲女ⅴideoshd黑人| 亚洲免费视频观看| 欧美有码在线观看视频| 久久人人爽爽爽人久久久| 裸体一区二区三区| 亚洲国产精品t66y| 亚洲区免费影片| 中文欧美日韩| 欧美伊人久久大香线蕉综合69| 久久国产日韩欧美| 欧美成人官网二区| 欧美日韩精品一区二区天天拍小说 | 小黄鸭精品aⅴ导航网站入口| 翔田千里一区二区| 老鸭窝91久久精品色噜噜导演| 老司机亚洲精品| 欧美日韩综合在线免费观看| 国产精品夜夜嗨| 一区一区视频| 中文久久精品| 久久免费偷拍视频| 亚洲肉体裸体xxxx137| 亚洲影视九九影院在线观看| 久久国产精品高清| 欧美日韩p片| 国产亚洲亚洲| 一本色道久久综合一区| 久久精品国产亚洲一区二区| 免费一级欧美在线大片| a4yy欧美一区二区三区| 久久精品99国产精品酒店日本| 免费一级欧美片在线观看| 国产精品福利在线观看| 亚洲国产高清一区| 亚洲欧美视频一区| 亚洲承认在线| 午夜精品久久久久久久蜜桃app| 欧美xxx在线观看| 国产区日韩欧美| aa级大片欧美三级| 奶水喷射视频一区| 亚洲欧美日韩高清| 欧美精品乱人伦久久久久久| 国产综合欧美在线看| 亚洲一区二区精品在线| 欧美韩日一区二区三区| 欧美怡红院视频| 国产精品久久久久久超碰| 亚洲日本电影|