锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
PBS_VERTICAL //鍨傜洿
鍝嶅簲娑堟伅
PBM_DELTAPOS //涓涓繘搴︽潯鐢變竴涓寚瀹氱殑澧為噺褰撳墠浣嶇疆鍜岄噸緇樻爮錛屼互鍙嶆槧鏂扮殑浣嶇疆銆?
wParam=錛堢殑WPARAM錛塶Increment
lParam = 0;
榪斿洖鍘熸潵鐨勪綅緗?
闃呰鍏ㄦ枃
]]>
ofstream( const char* szName, int nMode = ios::out, int nProt = filebuf::openprot )
szName:鎸囧畾灝嗚鎵撳紑鐨勬枃浠跺悕
nMode:鎸囧畾鎵撳紑鐨勬柟寮忥紝鏈変互涓嬪嚑縐嶅彇鍊?
--------------------------------------------------------------------------------
ios::app 鏁版嵁濮嬬粓娣誨姞鍦ㄦ枃浠剁殑鏈熬錛屾枃浠剁殑鎸囬拡涓嶇Щ鍔ㄣ傛瘮濡傝緭鍏ョ殑鏄?23錛屽湪鏂囦歡鐨勬湯灝懼嚭鐜扮殑鏄?21錛堝厛灝?鎻掑叆鏂囦歡灝撅紝鎺ヤ笅鏉ユ彃鍏?錛?鍦?鐨勫墠闈?...錛?/p>
ios::ate 鏁版嵁娣誨姞鍦ㄦ枃浠剁殑鏈熬錛屾枃浠舵寚閽堜細(xì)縐誨姩錛屾瘮濡傝緭鍏?23錛屽湪鏂囦歡鐨勬湯灝懼氨鍑虹幇123.
ios::in 濡傛灉鎸囧畾浜?jiǎn)姝ゆā寮忓Q屽垯鏂囦歡鐨勫唴瀹逛笉浼?xì)琚埅鏂?/p>
ios::out 鎵撳紑鏂囦歡錛岀敤浜庤緭鍑猴紝鍙互鐢ㄤ簬鎵鏈夌殑ofstream瀵硅薄
ios::trunc 濡傛灉鏂囦歡宸茬粡瀛樺湪錛岄偅涔堟枃浠剁殑鍐呭灝嗚娓呯┖
ios::nocreate 鎵撳紑鏂囦歡鐨勬椂鍊欎笉鍒涘緩鏂囦歡錛屾剰鎬濇槸濡傛灉鏂囦歡涓嶅瓨鍦紝鍒欏嚱鏁板け璐?/p>
ios::noreplace 涓嶈鐩栨枃浠訛紝鎰忔濇槸濡傛灉鏂囦歡瀛樺湪錛屽垯鍑芥暟璋冪敤澶辮觸銆?/p>
ios::binary 浠ヤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡錛岄粯璁ゆ槸浠ユ枃鏈柟寮忔墦寮
--------------------------------------------------------------------------------
nProt:鎸囧畾鏂囦歡淇濇姢瑙勬牸璇存槑錛屾湁浠ヤ笅鍑犵鍙栧?br />filebuf::sh_compat 鍏煎鍏變韓妯″紡filebuf::openprot鍜屾縐嶆柟寮忎竴鏍?br />filebuf::sh_none 鐙崰妯″紡錛屼笉鍏變韓
filebuf::sh_read 鍏變韓錛屽彧璇繪柟寮?br />filebuf::sh_write 鍏變韓錛屽彲浠ュ鏂囦歡鎵ц鍐欏叆鎿嶄綔
浠庢枃浠朵腑璇誨彇鏁版嵁鏄氳繃ifstream鐨勫璞¤繘琛岀殑錛屽叾鏋勯犲嚱鏁板涓?br />ifstream::ifstream
ifstream( const char* szName, int nMode = ios::in, int nProt = filebuf::openprot );鍚勫弬鏁扮殑鎰忎箟鍚屼笂
瀵逛簬C++鐨勬枃浠舵搷浣滐紝闇瑕佸厛鏋勫緩ofstream鍜宨fstream綾葷殑瀵硅薄錛岀劧鍚庨氳繃璇ュ璞$殑鎴愬憳鍑芥暟榪涜鏂囦歡鐨勮鍐欐搷浣滐紙渚嬪write鍜宺ead鍑芥暟錛?/p>
渚嬪瓙錛?/p>
#include
#include
#include
using namespace std;
int main()
{
//鎵撳紑鏂囦歡錛屽鏋滄枃浠朵笉瀛樺湪鍒欏垱寤烘枃浠訛紝鐒跺悗鍚戞枃浠跺唴鍐欏叆鏁版嵁
ofstream outFile("2.txt",ios::app);
//灝嗘暟鎹啓鍏ユ枃浠?br /> outFile.write("c++瀵規(guī)枃浠剁殑鎿嶄綔鏂規(guī)硶",strlen("c++瀵規(guī)枃浠剁殑鎿嶄綔鏂規(guī)硶"));
outFile.close();
//鍦ㄦ枃浠剁殑鏈熬鍐欏叆鏁版嵁錛屽厛灝嗘枃浠剁殑鎸囬拡縐誨埌鏈熬
outFile.open("2.txt",ios::app);
outFile.seekp(0,ios::end);
outFile.write(",閲嶅鍐欎竴嬈★細(xì)c++瀵規(guī)枃浠剁殑鎿嶄綔鏂規(guī)硶",strlen(",閲嶅鍐欎竴嬈★細(xì)c++瀵規(guī)枃浠剁殑鎿嶄綔鏂規(guī)硶"));
outFile.close();
//璇誨彇鏂囦歡鐨勫唴瀹癸紝騫跺皢鍏舵樉紺哄湪灞忓箷涓?br /> ifstream inFile;
inFile.open("2.txt",ios::in);
char buffer[100];
inFile.read(buffer,99);
buffer[99]='';
for(int i=0;i<100;i++)
cout<<buffer[i];
inFile.close();
return 0;
}
C/C++緙栬瘧鍣ㄥ湪鍐呭瓨鍒嗛厤鏃朵篃淇濇寔浜?jiǎn)鏁版嵁瀵归綈锛岃L(fēng)湅涓嬩緥錛?/p>
struct{
short a1;
short a2;
short a3;
}A;
struct{
long
short a2;
}B;
cout<<sizeof(A)<<","<<sizeof(B)<<endl;//鍏跺畠浠g爜鐣ュ幓
緇撴瀯浣揂鍜孊鐨勫ぇ灝忓垎鍒槸澶氬皯鍛紵
榛樿鎯呭喌涓嬶紝涓轟簡(jiǎn)鏂逛究瀵圭粨鏋勪綋鍏冪礌鐨勮闂拰綆$悊錛屽綋緇撴瀯浣撳唴鐨勫厓绱犻兘灝忎簬澶勭悊鍣ㄩ暱搴︾殑鏃跺欙紝渚夸互緇撴瀯浣撻噷闈㈡渶闀跨殑鏁版嵁涓哄榻愬崟浣嶏紝涔熷氨鏄錛?strong>緇撴瀯浣撶殑闀垮害涓瀹氭槸鏈闀挎暟鎹暱搴︾殑鏁存暟鍊嶃?/strong>
濡傛灉緇撴瀯浣撳唴閮ㄥ瓨鍦ㄩ暱搴﹀ぇ浜庡鐞嗗櫒浣嶆暟鏃跺氨浠ュ鐞嗗櫒浣嶆暟涓哄榻愬崟浣嶃?/p>
緇撴瀯浣撳唴綾誨瀷鐩稿悓鐨勮繛緇厓绱犲皢瀛樺湪榪炵畫鐨勭┖闂村唴錛屽拰鏁扮粍涓鏍楓?/p>
涓婁緥涓?
A鏈?涓猻hort綾誨瀷鍙橀噺錛屽悇鑷崰2瀛楄妭錛屾誨拰涓?錛?鏄?鐨勫嶆暟錛屾墍浠izeof(A)=6;
B鏈変竴涓猯ong綾誨瀷鍙橀噺錛屽崰4瀛楄妭錛屼竴涓猻hort綾誨瀷鐨勫彉閲忥紝鍗?瀛楄妭錛屾誨拰6涓嶆槸鏈澶ч暱搴?鐨勫嶆暟錛屾墍浠ヨ琛ョ┖瀛楄妭浠ュ鑷?瀹炵幇瀵歸綈錛屾墍浠izeof(8)=8銆?/p>
鍦–++綾葷殑璁捐涓伒寰悓鏍風(fēng)殑閬撶悊錛屼絾闇娉ㄦ剰錛岀┖綾婚渶瑕佸崰1涓瓧鑺傦紝闈?rùn)鎬佸彉閲?static)鐢變簬鍦ㄦ爤涓垎閰嶏紝涓嶅湪sizeof璁$畻鑼冨洿鍐呫?/p>
鍋囪鎴戜滑鏈夎繖鏍風(fēng)殑涓涓被錛?
class Base {
public:
virtual void f() { cout << "Base::f" << endl; }
virtual void g() { cout << "Base::g" << endl; }
virtual void h() { cout << "Base::h" << endl; }
};
鎸夌収涓婇潰鐨勮娉曪紝鎴戜滑鍙互閫氳繃Base鐨勫疄渚嬫潵寰楀埌铏氬嚱鏁拌〃銆?涓嬮潰鏄疄闄呬緥紼嬶細(xì)
typedef void(*Fun)(void);
Base b;
Fun pFun = NULL;
cout << "铏氬嚱鏁拌〃鍦板潃錛? << (int*)(&b) << endl;
cout << "铏氬嚱鏁拌〃 — 絎竴涓嚱鏁板湴鍧錛? << (int*)*(int*)(&b) << endl;
/*榪欓噷鐨勪竴鐐逛簤璁殑涓漢鐪嬫硶*/
鍘熸枃璁や負(fù)(int*)(&b)鏄櫄琛ㄧ殑鍦板潃錛岃屽緢澶氱綉鍙嬮兘璇達(dá)紝錛堝寘鎷垜涔熻涓猴級(jí)錛?span style="color: red">(int *)*(int*)(&b)
鎵嶆槸铏氳〃鍦板潃鑰?span style="color: red">(int*)*((int*)*(int*)(&b))
; 鎵嶆槸铏氳〃絎竴涓櫄鍑芥暟鐨勫湴鍧銆?/p>鍏跺疄鐪嬪悗闈㈢殑璋冪敤pFun = (Fun)*((int*)*(int*)(&b)); 灝卞彲浠ョ湅鍑猴紝*((int*)*(int*)(&b));杞垚鍑芥暟鎸囬拡緇檖Fun錛岀劧鍚庢紜殑璋冪敤鍒頒簡(jiǎn)铏氬嚱鏁皏irtual void f()銆?/p>
// Invoke the first virtual function
pFun = (Fun)*((int*)*(int*)(&b));
pFun();
瀹為檯榪愯緇忔灉濡備笅錛?Windows XP+VS2003, Linux 2.6.22 + GCC 4.1.3)
铏氬嚱鏁拌〃鍦板潃錛?012FED4
铏氬嚱鏁拌〃 — 絎竴涓嚱鏁板湴鍧錛?044F148
Base::f
閫氳繃榪欎釜紺轟緥錛屾垜浠彲浠ョ湅鍒幫紝鎴戜滑鍙互閫氳繃寮鴻鎶?amp;b杞垚int *錛屽彇寰楄櫄鍑芥暟琛ㄧ殑鍦板潃錛岀劧鍚庯紝鍐嶆鍙栧潃灝卞彲浠ュ緱鍒扮涓涓櫄鍑芥暟鐨勫湴鍧浜?jiǎn)锛屼篃灏辨槸Base::f()錛岃繖鍦ㄤ笂闈㈢殑紼嬪簭涓緱鍒頒簡(jiǎn)楠岃瘉錛堟妸int* 寮哄埗杞垚浜?jiǎn)鍑芥暟鎸囬拡锛?jí)銆傞氳繃榪欎釜紺轟緥錛屾垜浠氨鍙互鐭ラ亾濡傛灉瑕佽皟鐢˙ase::g()鍜孊ase::h()錛屽叾浠g爜濡備笅錛?
(Fun)*((int*)*(int*)(&b)+0); // Base::f()
(Fun)*((int*)*(int*)(&b)+1); // Base::g()
(Fun)*((int*)*(int*)(&b)+2); // Base::h()
榪欎釜鏃跺欎綘搴旇鎳備簡(jiǎn)鍚с備粈涔堬紵榪樻槸鏈夌偣鏅曘備篃鏄紝榪欐牱鐨勪唬鐮佺湅鐫澶貢浜?jiǎn)銆傛病闂錛岃鎴戠敾涓浘瑙i噴涓涓嬨傚涓嬫墍紺猴細(xì)
娉ㄦ剰錛氬湪涓婇潰榪欎釜鍥句腑錛屾垜鍦ㄨ櫄鍑芥暟琛ㄧ殑鏈鍚庡鍔犱簡(jiǎn)涓涓粨鐐癸紝榪欐槸铏氬嚱鏁拌〃鐨勭粨鏉熺粨鐐癸紝灝卞儚瀛楃涓茬殑緇撴潫絎?#8220;\0”涓鏍鳳紝鍏舵爣蹇椾簡(jiǎn)铏氬嚱鏁拌〃鐨勭粨鏉熴傝繖涓粨鏉熸爣蹇楃殑鍊煎湪涓嶅悓鐨勭紪璇戝櫒涓嬫槸涓嶅悓鐨勩傚湪WinXP+VS2003涓嬶紝榪欎釜鍊兼槸NULL銆傝屽湪Ubuntu 7.10 + Linux 2.6.22 + GCC 4.1.3涓嬶紝榪欎釜鍊兼槸濡傛灉1錛岃〃紺鴻繕鏈変笅涓涓櫄鍑芥暟琛紝濡傛灉鍊兼槸0錛岃〃紺烘槸鏈鍚庝竴涓櫄鍑芥暟琛ㄣ?
涓嬮潰錛屾垜灝嗗垎鍒鏄?#8220;鏃犺鐩?#8221;鍜?#8220;鏈夎鐩?#8221;鏃剁殑铏氬嚱鏁拌〃鐨勬牱瀛愩傛病鏈夎鐩栫埗綾葷殑铏氬嚱鏁版槸姣棤鎰忎箟鐨勩傛垜涔嬫墍浠ヨ璁茶堪娌℃湁瑕嗙洊鐨勬儏鍐碉紝涓昏鐩殑鏄負(fù)浜?jiǎn)缁欎竴涓姣斻傚湪姣旇緝涔嬩笅錛屾垜浠彲浠ユ洿鍔犳竻妤氬湴鐭ラ亾鍏跺唴閮ㄧ殑鍏蜂綋瀹炵幇銆?
涓鑸戶鎵匡紙鏃犺櫄鍑芥暟瑕嗙洊錛?/strong>
涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅緇ф壙鏃剁殑铏氬嚱鏁拌〃鏄粈涔堟牱鐨勩傚亣璁炬湁濡備笅鎵紺虹殑涓涓戶鎵垮叧緋伙細(xì)
璇鋒敞鎰忥紝鍦ㄨ繖涓戶鎵垮叧緋諱腑錛屽瓙綾繪病鏈夐噸杞戒換浣曠埗綾葷殑鍑芥暟銆傞偅涔堬紝鍦ㄦ淳鐢熺被鐨勫疄渚嬩腑錛屽叾铏氬嚱鏁拌〃濡備笅鎵紺猴細(xì)
瀵逛簬瀹炰緥錛欴erive d; 鐨勮櫄鍑芥暟琛ㄥ涓嬶細(xì)
鎴戜滑鍙互鐪嬪埌涓嬮潰鍑犵偣錛?
1錛夎櫄鍑芥暟鎸夌収鍏跺0鏄庨『搴忔斁浜庤〃涓?
2錛夌埗綾葷殑铏氬嚱鏁板湪瀛愮被鐨勮櫄鍑芥暟鍓嶉潰銆?
鎴戠浉淇¤仾鏄庣殑浣犱竴瀹氬彲浠ュ弬鑰冨墠闈㈢殑閭d釜紼嬪簭錛屾潵緙栧啓涓孌電▼搴忔潵楠岃瘉銆?
涓鑸戶鎵匡紙鏈夎櫄鍑芥暟瑕嗙洊錛?/strong>
瑕嗙洊鐖剁被鐨勮櫄鍑芥暟鏄緢鏄劇劧鐨勪簨鎯咃紝涓嶇劧錛岃櫄鍑芥暟灝卞彉寰楁鏃犳剰涔夈備笅闈紝鎴戜滑鏉ョ湅涓涓嬶紝濡傛灉瀛愮被涓湁铏氬嚱鏁伴噸杞戒簡(jiǎn)鐖剁被鐨勮櫄鍑芥暟錛屼細(xì)鏄竴涓粈涔堟牱瀛愶紵鍋囪錛屾垜浠湁涓嬮潰榪欐牱鐨勪竴涓戶鎵垮叧緋匯?
涓轟簡(jiǎn)璁╁ぇ瀹剁湅鍒拌緇ф壙榪囧悗鐨勬晥鏋滐紝鍦ㄨ繖涓被鐨勮璁′腑錛屾垜鍙鐩栦簡(jiǎn)鐖剁被鐨勪竴涓嚱鏁幫細(xì)f()銆傞偅涔堬紝瀵逛簬媧劇敓綾葷殑瀹炰緥錛屽叾铏氬嚱鏁拌〃浼?xì)鏄笅闈㈢殑涓涓牱瀛愶細(xì)
鎴戜滑浠庤〃涓彲浠ョ湅鍒頒笅闈㈠嚑鐐癸紝
1錛夎鐩栫殑f()鍑芥暟琚斁鍒頒簡(jiǎn)铏氳〃涓師鏉ョ埗綾昏櫄鍑芥暟鐨勪綅緗?
2錛夋病鏈夎瑕嗙洊鐨勫嚱鏁頒緷鏃с?
榪欐牱錛屾垜浠氨鍙互鐪嬪埌瀵逛簬涓嬮潰榪欐牱鐨勭▼搴忥紝
Base *b = new Derive();
b->f();
鐢眀鎵鎸囩殑鍐呭瓨?shù)腑鐨勮櫄鍑芥暟琛ㄧ殑f()鐨勪綅緗凡緇忚Derive::f()鍑芥暟鍦板潃鎵鍙栦唬錛屼簬鏄湪瀹為檯璋冪敤鍙戠敓鏃訛紝鏄疍erive::f()琚皟鐢ㄤ簡(jiǎn)銆傝繖灝卞疄鐜頒簡(jiǎn)澶氭?/span>銆?
澶氶噸緇ф壙錛堟棤铏氬嚱鏁拌鐩栵級(jí)
涓嬮潰錛屽啀璁╂垜浠潵鐪嬬湅澶氶噸緇ф壙涓殑鎯呭喌錛屽亣璁炬湁涓嬮潰榪欐牱涓涓被鐨勭戶鎵垮叧緋匯傛敞鎰忥細(xì)瀛愮被騫舵病鏈夎鐩栫埗綾葷殑鍑芥暟銆?
瀵逛簬瀛愮被瀹炰緥涓殑铏氬嚱鏁拌〃錛屾槸涓嬮潰榪欎釜鏍峰瓙錛?
鎴戜滑鍙互鐪嬪埌錛?
1錛?姣忎釜鐖剁被閮芥湁鑷繁鐨勮櫄琛ㄣ?
2錛?瀛愮被鐨勬垚鍛樺嚱鏁拌鏀懼埌浜?jiǎn)绗竴涓埗綾葷殑琛ㄤ腑銆傦紙鎵璋撶殑絎竴涓埗綾繪槸鎸夌収澹版槑欏哄簭鏉ュ垽鏂殑錛?
榪欐牱鍋氬氨鏄負(fù)浜?jiǎn)瑙e喅涓嶅悓鐨勭埗绫痪c誨瀷鐨勬寚閽堟寚鍚戝悓涓涓瓙綾誨疄渚嬶紝鑰岃兘澶熻皟鐢ㄥ埌瀹為檯鐨勫嚱鏁般?
澶氶噸緇ф壙錛堟湁铏氬嚱鏁拌鐩栵級(jí)
涓嬮潰鎴戜滑鍐嶆潵鐪嬬湅錛屽鏋滃彂鐢熻櫄鍑芥暟瑕嗙洊鐨勬儏鍐點(diǎn)?
涓嬪浘涓紝鎴戜滑鍦ㄥ瓙綾諱腑瑕嗙洊浜?jiǎn)鐖毒c葷殑f()鍑芥暟錛?nbsp;
涓嬮潰鏄浜庡瓙綾誨疄渚嬩腑鐨勮櫄鍑芥暟琛ㄧ殑鍥撅細(xì)
鎴戜滑鍙互鐪嬭錛屼笁涓埗綾昏櫄鍑芥暟琛ㄤ腑鐨刦()鐨勪綅緗鏇挎崲鎴愪簡(jiǎn)瀛愮被鐨勫嚱鏁版寚閽堛傝繖鏍鳳紝鎴戜滑灝卞彲浠ヤ換涓闈?rùn)鎬佺被鍨嬬殑鐖剁被鏉ユ寚鍚戝瓙綾伙紝騫惰皟鐢ㄥ瓙綾葷殑f()浜?jiǎn)銆傚錛?
Derive d;
Base1 *b1 = &d;
Base2 *b2 = &d;
Base3 *b3 = &d;
b1->f(); //Derive::f()
b2->f(); //Derive::f()
b3->f(); //Derive::f()
b1->g(); //Base1::g()
b2->g(); //Base2::g()
b3->g(); //Base3::g()
瀹夊叏鎬?br />姣忔鍐機(jī)++鐨勬枃绔狅紝鎬誨厤涓嶄簡(jiǎn)瑕佹壒鍒や竴涓婥++銆傝繖綃囨枃绔犱篃涓嶄緥澶栥傞氳繃涓婇潰鐨勮榪幫紝鐩鎬俊鎴戜滑瀵硅櫄鍑芥暟琛ㄦ湁涓涓瘮杈冪粏鑷寸殑浜?jiǎn)瑙d簡(jiǎn)銆傛按鍙澆鑸燂紝浜﹀彲瑕嗚垷銆備笅闈紝璁╂垜浠潵鐪嬬湅鎴戜滑鍙互鐢ㄨ櫄鍑芥暟琛ㄦ潵騫茬偣浠涔堝潖浜嬪惂銆?
涓銆侀氳繃鐖剁被鍨嬬殑鎸囬拡璁塊棶瀛愮被鑷繁鐨勮櫄鍑芥暟
鎴戜滑鐭ラ亾錛屽瓙綾繪病鏈夐噸杞界埗綾葷殑铏氬嚱鏁版槸涓浠舵鏃犳剰涔夌殑浜嬫儏銆傚洜涓哄鎬佷篃鏄鍩轟簬鍑芥暟閲嶈澆鐨勩傝櫧鐒跺湪涓婇潰鐨勫浘涓垜浠彲浠ョ湅鍒癇ase1鐨勮櫄琛ㄤ腑鏈塂erive鐨勮櫄鍑芥暟錛屼絾鎴戜滑鏍規(guī)湰涓嶅彲鑳戒嬌鐢ㄤ笅闈㈢殑璇彞鏉ヨ皟鐢ㄥ瓙綾葷殑鑷湁铏氬嚱鏁幫細(xì)
Base1 *b1 = new Derive();
b1->f1(); //緙栬瘧鍑洪敊
浠諱綍濡勫浘浣跨敤鐖剁被鎸囬拡鎯寵皟鐢ㄥ瓙綾諱腑鐨勬湭瑕嗙洊鐖剁被鐨勬垚鍛樺嚱鏁扮殑琛屼負(fù)閮戒細(xì)琚紪璇戝櫒瑙嗕負(fù)闈炴硶錛屾墍浠ワ紝榪欐牱鐨勭▼搴忔牴鏈棤娉曠紪璇戦氳繃銆備絾鍦ㄨ繍琛屾椂錛屾垜浠彲浠ラ氳繃鎸囬拡鐨勬柟寮忚闂櫄鍑芥暟琛ㄦ潵杈懼埌榪濆弽C++璇箟鐨勮涓恒傦紙鍏充簬榪欐柟闈㈢殑灝濊瘯錛岄氳繃闃呰鍚庨潰闄勫綍鐨勪唬鐮侊紝鐩鎬俊浣犲彲浠ュ仛鍒拌繖涓鐐癸級(jí)
浜屻佽闂畁on-public鐨勮櫄鍑芥暟
鍙﹀錛屽鏋滅埗綾葷殑铏氬嚱鏁版槸private鎴栨槸protected鐨勶紝浣嗚繖浜涢潪public鐨勮櫄鍑芥暟鍚屾牱浼?xì)瀛樺湪浜庤櫄鍑芥暟琛ㄤ腑锛屾墍浠ワ紝鎴戜滑鍚屾牱鍙互浣跨敤璁塊棶铏氬嚱鏁拌〃鐨勬柟寮忔潵璁塊棶榪欎簺non-public鐨勮櫄鍑芥暟錛岃繖鏄緢瀹規(guī)槗鍋氬埌鐨勩?
濡傦細(xì)
class Base {
private:
virtual void f() { cout << "Base::f" << endl; }
};
class Derive : public Base{
};
typedef void(*Fun)(void);
void main() {
Derive d;
Fun pFun = (Fun)*((int*)*(int*)(&d)+0);
pFun();
}
緇撴潫璇?br />C++榪欓棬璇█鏄竴闂∕agic鐨勮璦錛屽浜庣▼搴忓憳鏉ヨ錛屾垜浠技涔庢案榪滄懜涓嶆竻妤氳繖闂ㄨ璦鑳岀潃鎴戜滑鍦ㄥ共浜?jiǎn)浠涔堛傞渶瑕佺啛鎮(zhèn)夎繖闂ㄨ璦錛屾垜浠氨蹇呴渶瑕佷簡(jiǎn)瑙++閲岄潰鐨勯偅浜涗笢瑗匡紝闇瑕佸幓浜?jiǎn)瑙++涓偅浜涘嵄闄╃殑涓滆タ銆備笉鐒?dòng)灱寴q欐槸涓縐嶆惉璧風(fēng)煶澶寸牳鑷繁鑴氱殑緙栫▼璇█銆?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/hairetz/archive/2009/04/29/4137000.aspx
褰撶敤涓涓凡鍒濆鍖栬繃浜?jiǎn)鐨勮嚜瀹氫箟绫痪c誨瀷瀵硅薄鍘誨垵濮嬪寲鍙︿竴涓柊鏋勯犵殑瀵硅薄鐨勬椂鍊欙紝鎷瘋礉鏋勯犲嚱鏁板氨浼?xì)琚嚜鍔ㄨ皟鐢ㄣ備篃灝辨槸璇達(dá)紝褰撶被鐨勫璞¢渶瑕佹嫹璐濇椂錛屾嫹璐濇瀯閫犲嚱鏁板皢浼?xì)琚皟鐢ㄣ備互涓嬫儏鍐甸兘浼?xì)璋冪敤鎷疯礉鏋勯犲嚱鏁幫細(xì)
①銆佷竴涓璞′互鍊間紶閫掔殑鏂瑰紡浼犲叆鍑芥暟浣擄細(xì)榪欎釜濂界悊瑙o紝鍥犱負(fù)浼犻掔粰鍑芥暟浣撶殑鍙傛暟涓嶆槸 str 鑰屾槸 _str ,鏄痵tr鐨勫鍒跺搧銆傛墍浠ュ繀鐒朵細(xì)璋冪敤鎷瘋礉鏋勯犲嚱鏁般?nbsp;
②銆佷竴涓璞′互鍊間紶閫掔殑鏂瑰紡浠庡嚱鏁拌繑鍥?錛氱浉褰撲簬鏋勯犱竴涓柊鐨勫璞°?br />③銆佷竴涓璞¢渶瑕侀氳繃鍙﹀涓涓璞¤繘琛屽垵濮嬪寲銆傦細(xì)鍚屼笂銆?br />
姝e鎮(zhèn)ㄧ悊瑙i偅鏍?“嫻呮嫹璐濓細(xì)鍙嫹璐濆璞$殑鍩烘湰灞炴э紝鍏朵粬鐨勫紩鐢ㄤ笉鎷瘋礉錛岃繕鏄繚鐣欏紩鐢?#8221;濡傛灉鍦ㄧ被涓病鏈夋樉寮忓湴澹版槑涓涓嫹璐濇瀯閫犲嚱鏁幫紝閭d箞錛岀紪璇戝櫒灝嗕細(xì)鑷姩鐢熸垚涓涓粯璁ょ殑鎷瘋礉鏋勯犲嚱鏁幫紝璇ユ瀯閫犲嚱鏁板畬鎴愬璞′箣闂寸殑浣嶆嫹璐濄傚綋瀵硅薄娌℃湁鎸囬拡鏃訛紝鎸夌収涓婇潰鐨勮鍒欙紝鍒欎竴鍒囨甯革紝嫻呮嫹璐濇妸鏁版嵁澶嶅埗榪囨柊瀵硅薄銆備絾褰撳璞℃湁鎸囬拡鏃訛紝鍥犱負(fù)嫻呮嫹璐濆紩鐢ㄤ笉鎷瘋礉錛屾墍浠ユ柊瀵硅薄涓庢棫瀵硅薄浠栦滑鎸囧悜鐨勬槸鍚屼竴涓唴瀛樺尯錛岃繖鏃跺綋閲婃斁鍐呭瓨鏃跺氨鍑虹幇閲婃斁涓ゆ錛屽嚭閿欎簡(jiǎn)銆?br />
榪欐椂闇瑕佹繁鎷瘋礉..................
鎵浠ラ氬父鎴戜滑闇瑕佽嚜宸卞啓鎷瘋礉鏋勯犲嚱鏁幫紝浠ュ厤鍑虹幇閿欒銆?br />//////////////鍙傝冭祫鏂欐墍寰楋紝姝g‘涓庡惁嬈㈣繋璁ㄨ銆?br />