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

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://m.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 閱讀(681) 評論(0)  編輯 收藏 引用

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



<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(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在线| 亚洲一区高清| 亚洲电影在线| 亚洲美女91| 国产一区二区三区直播精品电影 | 国产精品丝袜91| 久久蜜桃香蕉精品一区二区三区| 久久精品国产一区二区三区 | 欧美日韩亚洲一区二区三区在线观看| 一本色道久久加勒比88综合| 亚洲一区二区三区影院| 国产综合18久久久久久| 亚洲黄色av| 国产欧美精品一区二区色综合| 裸体一区二区| 欧美日韩精品一本二本三本| 久久久91精品| 欧美日韩在线播放一区| 久久夜色精品国产欧美乱| 欧美日韩午夜精品| 麻豆精品视频在线| 国产精品国产三级国产专播品爱网| 久久伊人精品天天| 欧美日韩免费区域视频在线观看| 久久久久久久久久久久久久一区 | 亚洲午夜未删减在线观看| 香蕉成人久久| 日韩香蕉视频| 久久久精品国产一区二区三区| 亚洲一区免费网站| 欧美成人精品在线观看| 久久精品一区| 国产精品私拍pans大尺度在线| 亚洲黄色小视频| 亚洲高清精品中出| 久久精品99国产精品| 亚洲欧美日韩在线不卡| 欧美高清视频www夜色资源网| 久久综合影视| 国产主播一区二区| 亚洲女与黑人做爰| 欧美亚洲视频在线观看| 欧美视频一区二区在线观看 | 欧美一区91| 国产精品视频yy9299一区| 日韩香蕉视频| 亚洲午夜电影| 欧美日韩另类在线| 亚洲毛片在线看| 99精品久久| 欧美日韩一区二区精品| 99精品国产在热久久| 日韩亚洲精品视频| 免费成人高清| 亚洲国产精品一区| 亚洲精选视频免费看| 欧美激情视频在线播放| 日韩亚洲欧美综合| 亚洲图片自拍偷拍| 国产精品露脸自拍| 香蕉成人伊视频在线观看| 久久精品国产久精国产一老狼| 国产日韩欧美成人| 欧美中文在线字幕| 欧美成年人网站| 日韩视频在线免费观看| 欧美日韩免费高清| 亚洲免费视频网站| 久久影院午夜片一区| 亚洲高清视频在线| 欧美激情日韩| 亚洲午夜一二三区视频| 久久er精品视频| 亚洲国产欧美日韩| 欧美日韩视频在线第一区| 亚洲影院在线| 奶水喷射视频一区| 一本色道久久综合亚洲精品小说| 欧美日韩免费区域视频在线观看| 亚洲一区二区三区色| 免费成人高清| 亚洲一区中文| 黄色精品在线看| 欧美精品v日韩精品v韩国精品v | 一区二区三区国产盗摄| 久久久久久69| 亚洲最新色图| 国产日韩视频| 欧美黄色网络| 欧美一级淫片aaaaaaa视频| 亚洲国产导航| 欧美在线免费观看视频| 亚洲精品国产精品乱码不99| 国产精品日韩精品| 免费在线欧美视频| 亚洲女女女同性video| 亚洲高清一二三区| 久久久一二三| 亚洲一区二区三区免费在线观看| 精品成人在线| 国产精品视频yy9099| 欧美大片在线观看一区二区| 欧美一二三区精品| 亚洲免费观看高清完整版在线观看熊 | 欧美大片免费观看在线观看网站推荐| 麻豆精品精华液| 亚洲欧美国产77777| 亚洲第一精品影视| 国产欧美一区视频| 国产精品igao视频网网址不卡日韩| 久久久久青草大香线综合精品| 99香蕉国产精品偷在线观看| 欧美+亚洲+精品+三区| 欧美一区二区在线| 亚洲小视频在线观看| 亚洲电影天堂av| 禁断一区二区三区在线| 国产精品香蕉在线观看| 欧美另类一区二区三区| 久久综合色一综合色88| 欧美一区二区三区在线免费观看 | 久久视频一区| 久久成人18免费网站| 香蕉成人久久| 亚洲综合国产精品| 亚洲男人天堂2024| 中文国产一区| 亚洲无线视频| 亚洲欧美第一页| 亚洲欧美激情四射在线日| 宅男噜噜噜66国产日韩在线观看| 亚洲欧洲日本国产| 亚洲精品欧美| 亚洲毛片在线观看.| 亚洲理伦电影| 国产精品99久久久久久白浆小说| 一区二区欧美激情| 亚洲午夜一区| 欧美亚洲一区| 久久久久久久999| 久久久水蜜桃av免费网站| 久久久久久久久岛国免费| 久久久天天操| 欧美激情四色 | 亚洲精品国产品国语在线app| 国产欧美日韩免费看aⅴ视频| 欧美日韩精品不卡| 欧美视频一区二区| 国产精品一级二级三级| 国产日本欧美一区二区| 黄色精品在线看| 亚洲日本黄色| 亚洲女同同性videoxma| 久久精品中文| 亚洲高清激情| 亚洲视频精选在线| 欧美一区二区三区在线| 老司机精品福利视频| 欧美理论在线播放| 国产欧美韩日| 亚洲老司机av| 欧美一区视频| 亚洲激情视频网站| 亚洲午夜精品在线| 久久精品2019中文字幕| 欧美巨乳波霸| 国产亚洲va综合人人澡精品| 亚洲欧洲综合| 欧美在线观看视频在线| 欧美成人免费小视频| 一区二区三区**美女毛片| 久久精品视频播放| 欧美视频不卡| 亚洲福利专区| 欧美一区二区三区的| 亚洲电影欧美电影有声小说| 亚洲欧美激情视频在线观看一区二区三区| 久久国产一区| 国产精品卡一卡二| 亚洲美女色禁图| 久久久青草婷婷精品综合日韩| 亚洲精品一区二区三| 久久精品在线免费观看| 国产精品美女久久久久aⅴ国产馆| 亚洲高清视频在线|