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

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

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


1.2 A Keyword Distinction

作者: Jerry Cat
時(shí)間: 2006/04/20
鏈接: http://m.shnenglu.com/jerysun0818/archive/2006/04/22/6064.html

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

C++的struct 與 class有惱人的曖昧關(guān)系, 表面上struct里沒顯式說明存儲權(quán)限的全是public而class則全是private, 事實(shí)卻并非如此簡單當(dāng)考慮到與C的兼容時(shí), 尤其是對待C中的tricks時(shí), 更是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中內(nèi)存連續(xù)分布的, 但若考慮到
?? //這是在C++中, struct基本上就是類, 這類的數(shù)據(jù)成員與外來(參)變量的"tricky 捆綁式"
?? //內(nèi)存布局將導(dǎo)致派生類的數(shù)據(jù)成員"插不進(jìn)去"從而導(dǎo)致類的數(shù)據(jù)成員內(nèi)存布局不連續(xù)!
?? //所以C的trick是非標(biāo)準(zhǔn)的不能濫用!

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;
?? // ...
};

強(qiáng)烈不推薦這種種"淫巧",? 不過在C/C++混合編程時(shí)你還不得不用它:)
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)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   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>
            久久狠狠久久综合桃花| 久久天天躁狠狠躁夜夜av| 亚洲精选国产| 欧美久久久久久久久久| 99精品福利视频| 亚洲日本电影在线| 欧美日韩中国免费专区在线看| 一片黄亚洲嫩模| 99re成人精品视频| 国产精品亚洲片夜色在线| 久久久久久久久久久久久久一区| 久久精品国产99精品国产亚洲性色 | 亚洲免费播放| 亚洲精品一区在线观看香蕉| 欧美日韩免费观看一区| 亚洲欧美中文在线视频| 久久国产精品久久久久久电车| 红桃视频欧美| 亚洲精品四区| 国产一区二区成人| 亚洲国产va精品久久久不卡综合| 欧美激情一区在线观看| 午夜精品久久久久影视 | 91久久精品国产| 欧美日精品一区视频| 欧美伊久线香蕉线新在线| 久久亚洲午夜电影| 亚洲欧美国产视频| 久久综合九色| 午夜精品久久久久久久99水蜜桃| 久久躁狠狠躁夜夜爽| 亚洲视频在线二区| 玖玖国产精品视频| 亚洲欧美在线一区| 欧美成人亚洲成人| 久久久久国产一区二区三区| 欧美母乳在线| 久热爱精品视频线路一| 国产精品女主播在线观看| 另类图片国产| 国产精品三区www17con| 欧美激情一区二区| 国产欧美精品日韩| 99精品欧美一区二区蜜桃免费| 伊人色综合久久天天五月婷| 亚洲一区二区精品视频| 一本久久a久久免费精品不卡| 久久精品亚洲一区二区| 欧美一区二区黄| 欧美日韩精品是欧美日韩精品| 免费成人毛片| 国内自拍一区| 午夜精品美女久久久久av福利| 一区二区三区四区五区在线| 美女主播视频一区| 欧美成在线观看| 国产一二精品视频| 午夜精品理论片| 西瓜成人精品人成网站| 国产精品免费观看视频| 一区二区电影免费观看| 夜夜嗨av一区二区三区中文字幕| 免费成人小视频| 麻豆成人精品| 伊人精品视频| 久久―日本道色综合久久| 久久一区二区三区超碰国产精品| 国产精品一区二区男女羞羞无遮挡| 亚洲乱亚洲高清| 99这里有精品| 欧美日韩在线视频观看| 在线视频欧美一区| 午夜精品久久久久久久99水蜜桃 | 国产毛片一区| 午夜精品福利一区二区三区av| 欧美在线观看一二区| 国产精品永久入口久久久| 亚洲欧美激情视频在线观看一区二区三区 | 久久久久国产精品麻豆ai换脸| 久久美女艺术照精彩视频福利播放| 国产偷久久久精品专区| 久久久青草青青国产亚洲免观| 久久亚洲综合色一区二区三区| 在线观看欧美激情| 欧美精品一区二区三区久久久竹菊| 亚洲精品在线二区| 西瓜成人精品人成网站| 韩日精品视频一区| 欧美91视频| 99视频日韩| 久久久精品视频成人| 亚洲国产日韩在线| 欧美日韩国产综合在线| 午夜精品免费| 亚洲国产成人不卡| 午夜精品久久久久久久久久久久| 狠狠久久亚洲欧美专区| 欧美电影电视剧在线观看| 亚洲一区观看| 亚洲成人自拍视频| 久久亚洲一区二区三区四区| 亚洲国产成人porn| 午夜日韩福利| 亚洲国产精品一区| 国产精品日韩专区| 欧美激情一区在线观看| 欧美亚洲一区二区在线| 亚洲日本一区二区三区| 久久国产精品一区二区| 亚洲美女黄色| 国产曰批免费观看久久久| 欧美精品在线免费观看| 欧美一级二区| 一本色道**综合亚洲精品蜜桃冫| 免费成人高清在线视频| 亚洲女与黑人做爰| 亚洲美女视频在线观看| 黄色成人av| 国产日产欧美一区| 国产精品h在线观看| 久久亚洲春色中文字幕| 亚洲欧美日韩在线播放| 99精品国产在热久久婷婷| 欧美成人午夜激情在线| 欧美在线一级视频| 亚洲一区在线看| 亚洲精选国产| 在线看成人片| 狠狠色综合网站久久久久久久| 国产精品国产自产拍高清av王其 | 欧美日韩久久精品| 久久免费高清视频| 羞羞色国产精品| 亚洲视频久久| 国产精品99久久99久久久二8| 亚洲国产综合在线看不卡| 欧美激情1区2区3区| 欧美成人午夜影院| 欧美二区在线观看| 免费一级欧美片在线观看| 久久视频国产精品免费视频在线| 欧美在线www| 亚洲欧美视频在线观看视频| 亚洲视频免费观看| 亚洲在线视频免费观看| 亚洲性线免费观看视频成熟| 99视频国产精品免费观看| 亚洲精品日韩综合观看成人91| 亚洲国产精品专区久久| 91久久精品美女高潮| 亚洲国产日韩一区二区| 亚洲精品社区| 亚洲天堂成人| 欧美一区二区在线观看| 欧美在线日韩在线| 久久午夜精品| 欧美成人tv| 亚洲日本成人| 亚洲视频欧美在线| 欧美一区二区成人| 久久久久久久999| 欧美成人国产| 欧美三级视频在线播放| 国产精品视频自拍| 国内精品久久久久久久影视麻豆 | 国产日韩在线亚洲字幕中文| 国产一区二区三区久久 | 亚洲国产精品一区二区尤物区| 亚洲国产高潮在线观看| 日韩小视频在线观看| 亚洲综合色视频| 久久精品一二三区| 欧美粗暴jizz性欧美20| 国产精品v欧美精品v日韩| 国产伦精品一区二区三区免费| 国产日韩一区在线| 亚洲精品国精品久久99热一| 亚洲专区在线| 久久综合九色| 99天天综合性| 欧美在线免费视屏| 欧美久色视频| 国产亚洲激情在线| 99ri日韩精品视频| 欧美一区三区三区高中清蜜桃| 欧美jizz19性欧美| 亚洲午夜精品久久| 欧美风情在线观看| 国产手机视频一区二区| 99精品欧美一区| 久久深夜福利免费观看| 99国产精品久久久久久久久久 | 性亚洲最疯狂xxxx高清| 欧美风情在线观看| 韩国在线一区| 亚洲综合欧美日韩| 亚洲激情黄色| 久久午夜av| 国产色综合天天综合网| 亚洲私人影院|