锘??xml version="1.0" encoding="utf-8" standalone="yes"?>玖玖国产精品视频,永久久久久久,国产亚洲欧美一区二区三区http://m.shnenglu.com/stdyh/category/1990.htmlvc java sdkzh-cnSun, 16 Dec 2012 06:44:57 GMTSun, 16 Dec 2012 06:44:57 GMT60C++寮傚父鎬葷粨http://m.shnenglu.com/stdyh/archive/2012/11/30/195828.htmldyhdyhFri, 30 Nov 2012 07:58:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/30/195828.htmlhttp://m.shnenglu.com/stdyh/comments/195828.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/30/195828.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/195828.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/195828.html1. 鎶涘嚭鐨勫紓甯稿璞′笉搴旇鏄寚閽堢被鍨?/div>
鍥犱負鎸囬拡鎸囧悜鐨勫璞$殑鍒犻櫎鍜屾瀽鏋勭敱璋佹潵澶勭悊錛屼粈涔堟椂鍊欐墽琛岋紝閮芥槸鏃犳硶紜畾鐨勪簨鎯咃紝C++涔熸病鏈夊畾涔夛紝姣斿鍫嗗拰鏍堜笂鐨勫璞$殑澶勭悊鏂瑰紡蹇呯劧涓嶄竴鏍?br />
2. 涓嶈兘鏄懼紡鍦版妸NULL浣滀負寮傚父瀵硅薄鎶涘嚭
鍥犱負throw(NULL)=tbrow(0)錛屽洜姝ULL浼氳褰撲綔鏁村瀷鎹曡幏錛岃屼笉鏄┖鎸囬拡甯擱噺錛岃繖鍙兘涓庣▼搴忓憳鐨勯鏈熶笉涓鑷?br />
3. 濡傛灉涓涓嚱鏁板0鏄庢椂鎸囧畾浜嗗叿浣撶殑寮傚父綾誨瀷錛岄偅涔堝畠鍙兘鎶涘嚭鎸囧畾綾誨瀷鐨勫紓甯?/div>
鍑芥暟鐨勪唬鐮佺粨鏋勫涓嬶細榪斿洖鍊肩被鍨嬪嚱鏁板悕(褰㈠弬琛?throw(綾誨瀷鍚嶈〃){鍑芥暟浣搣
int A() throw(myexception, int)  -- 鍙兘鎶涘嚭myexception鍜宨nt涓ょ綾誨瀷鐨勫紓甯?/div>
int A() throw()                  -- 涓嶆姏鍑轟換浣曞紓甯?/div>
int A()                          -- 鍙互鎶涘嚭浠諱綍寮傚父錛屼篃鍙互涓嶆姏鍑哄紓甯?/div>
鍑芥暟鍘熷瀷涓殑寮傚父澹版槑瑕佷笌瀹炵幇涓殑寮傚父澹版槑涓鑷達紝鍚﹀垯浼氬紩璧峰紓甯稿啿紿併傜敱浜庡紓甯告満鍒舵槸鍦ㄨ繍琛屽嚭鐜板紓甯告椂鎵嶅彂鎸ヤ綔鐢ㄧ殑錛屽洜姝ゅ鏋滃嚱鏁扮殑瀹炵幇涓姏鍑轟簡娌℃湁鍦ㄥ叾寮傚父澹版槑鍒楄〃涓垪鍑虹殑寮傚父錛岀紪璇戝櫒涔熻涓嶈兘媯鏌ュ嚭鏉ャ傚綋鎶涘嚭涓涓湭鍦ㄥ叾寮傚父澹版槑鍒楄〃閲岀殑寮傚父綾誨瀷鏃訛紝unexpected()鍑芥暟浼氳璋冪敤錛岄粯璁や細瀵艱嚧std::bad_exception綾誨瀷鐨勫紓甯歌鎶涘嚭銆傚鏋渟td::bad_exception涓嶅湪寮傚父澹版槑鍒楄〃閲岋紝鍙堜細瀵艱嚧terminate()琚皟鐢紝浠庤屽鑷寸▼搴忕粨鏉?br />
4. 寮傚父鍙兘鍦ㄥ垵濮嬪寲涔嬪悗鑰屼笖紼嬪簭緇撴潫涔嬪墠鎶涘嚭
5. throw璇彞涓殑琛ㄨ揪寮忔湰韜笉鑳藉紩鍙戞柊鐨勫紓甯?br />
6. 絀虹殑throw璇彞鍙兘鍑虹幇鍦╟atch璇彞鍧椾腑
絀虹殑throw鐢ㄦ潵灝嗘崟鑾風殑寮傚父鍐嶆姏鍑猴紝鍙互瀹炵幇澶氫釜澶勭悊紼嬪簭闂紓甯哥殑浼犻掋傜劧鑰岋紝濡傛灉鍦╟atch璇彞澶栫敤錛岀敱浜庢病鏈夋崟鑾峰埌寮傚父錛屼篃灝辨病鏈変笢瑗垮彲浠ュ啀鎶涘嚭錛岃繖鏍蜂細瀵艱嚧紼嬪簭浠ヤ笉瀹氱殑鏂瑰紡緇堟(榪欎緷璧栧叿浣撶殑緙栬瘧鍣?
7. 鍏稿瀷鐨則ry-catch緇撴瀯搴旇鏄淳鐢熸淳鍦ㄦ渶鍓嶉潰錛屽熀綾誨湪鍚庯紝鏈鍚庢槸...
8. catch鐨勫鐞嗛『搴忎負浠庝笂鍒頒笅錛屽彧瑕佹壘鍒頒竴涓尮閰嶇殑寮傚父綾誨瀷錛屽悗闈㈢殑寮傚父澶勭悊閮借蹇界暐
9. 鑻ュ紓甯稿璞′負綾葷殑瀵硅薄鏃訛紝搴旇閫氳繃寮曠敤鏉ユ崟鑾?/div>
鑻ヤ笉鏄敤寮曠敤錛屽垯媧劇敓綾誨璞℃繪槸浼氳鎴柇鎴愪負鍩虹被瀵硅薄


dyh 2012-11-30 15:58 鍙戣〃璇勮
]]>[杞琞鐢ㄤ袱涓爤瀹炵幇涓涓槦鍒椻斺旀垜浣滀負闈㈣瘯瀹樼殑灝忕粨http://m.shnenglu.com/stdyh/archive/2012/11/16/195273.htmldyhdyhFri, 16 Nov 2012 08:12:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/16/195273.htmlhttp://m.shnenglu.com/stdyh/comments/195273.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/16/195273.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/195273.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/195273.html

涓ゅ勾鍓嶄粠緗戜笂鐪嬪埌涓閬撻潰璇曢錛氱敤涓や釜鏍堬紙Stack錛夊疄鐜頒竴涓槦鍒楋紙Queue錛夈傝寰椾笉閿欙紝灝辯粡甯告嬁鏉ラ潰璇曪紝鍑犲勾涓嬫潵錛屽仛姝ら鐨勫簲璇ユ湁鍑犲崄浜轟簡銆傞氳繃瀵歸潰璇曡呯殑琛ㄧ幇鍜屽弽搴旓紝鏈変竴浜涚粺璁″拰鎰熷彈錛屽湪姝ゅ仛涓皬緇撱?/span>

 

鐢?/span>C++鎻忚堪錛岄鐩ぇ鑷存槸榪欐牱鐨勶細

 

宸茬煡涓嬮潰Stack綾誨強鍏?/span>3涓柟娉?/span>Push銆?/span>Pop鍜?/span> Count錛岃鐢?/span>2涓?/span>Stack瀹炵幇Queue綾葷殑鍏ラ槦(Enqueue)鍑洪槦(Dequeue)鏂規硶銆?/span>

 

class Stack

{

public:

         void Push(int x); // Push an element in stack;

         int Pop();  // Pop an element out of stack;

         int Count() const;     // Return the number of the elements in stack;

};

 

class Queue

{

public:

         void Enqueue(int x);

         int Dequeue();

 

private:

         Stack s1;

         Stack s2;

};

 

榪欓亾棰樺簲璇ヤ笉綆楅毦錛屾瘮璧楓婄紪紼嬩箣緹庛嬩腑寰蔣閭d簺浠涔?#8220;緲葷儥楗?#8221;鐨勯潰璇曢錛岄毦搴︿笂宸繙浜嗐傚喌涓旓紝鐢變簬鏃墮棿鍏崇郴錛屾垜涓鑸篃涓嶈姹傞潰璇曡呭啓浠g爜錛屽彧鎻忚堪娓呮鎬濊礬鍗沖彲銆傚嚭榪欓亾棰橈紝涓昏鑰冨療3鐐癸細

 

1.       鍦ㄧ煭鏃墮棿鍐咃紝鑳戒笉鑳芥壘鍒拌В鍐寵繖閬撻鐨勮凍澶熸竻鏅扮殑鎬濊礬錛堟濈淮鏄惁鏁忔嵎銆佹竻鏅幫級銆?/span>

2.       鑳戒笉鑳藉湪鍗曞悜琛ㄨ堪涓紝娓呮鍦版弿榪拌嚜宸辯殑鎬濊礬鍜屾兂娉曪紙琛ㄨ堪鑳藉姏鏄惁杈懼埌瑕佹眰錛夈?/span>

3.       瀵逛簬鏌愪簺鍏蜂綋緇嗚妭錛岃兘涓嶈兘鑰冭檻鍒幫紙鏄惁瓚沖緇嗚嚧錛夈?/span>

 

鎬諱綋涓婏紝浠?/span>10浜轟負渚嬶紝瀹為檯鐨勭粨鏋滃ぇ鑷存槸錛?/span>

 

1.       8涓漢鍙互鎵懼埌瑙e喅絳旀錛?/span>2涓漢鏃犳硶鎵懼埌絳旀錛堝嵆浣胯繘琛屼簡蹇呰鐨勬彁紺猴紝鏇劇粡鏈変綅鍙風О緹庡浗MIT娣遍?/span>2騫達紝涔嬪悗鍦?/span>Google緹庡浗鍏徃宸ヤ綔榪?/span>8涓湀鐨勫厔寮燂紝涔熸病鍋氬嚭鏉ワ級銆?/span>

2.       8涓壘鍒扮瓟妗堢殑浜轟腑錛?/span>6涓壘鍒扮殑鏂規硶鐩稿悓錛?/span>2涓漢鎵懼埌鍏跺畠鍙樼銆?/span>

3.       鍦ㄨ繖8涓漢涓紝鏈?/span>1涓漢鍙互涓嶇粡鎻愮ず錛屽悓鏃舵兂鍒板ぇ浼楁柟娉曞拰鍙樼銆?/span>

 

澶у鏁頒漢鐨勬濊礬鏄細濮嬬粓緇存姢s1浣滀負瀛樺偍絀洪棿錛屼互s2浣滀負涓存椂緙撳啿鍖恒?/span>

鍏ラ槦鏃訛紝灝嗗厓绱犲帇鍏?/span>s1銆?/span>

鍑洪槦鏃訛紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”錛堝脊鍑哄茍鍘嬪叆錛?/span>s2錛屽皢s2鐨勯《鍏冪礌寮瑰嚭浣滀負鍑洪槦鍏冪礌錛屼箣鍚庡啀灝?/span>s2鍓╀笅鐨勫厓绱犻愪釜“鍊掑洖”s1銆?/span>

瑙佷笅闈㈢ず鎰忓浘錛?/span>

 

2Stacks1Queue

 

涓婅堪鎬濊礬錛屽彲琛屾ф瘚搴哥疆鐤戙備絾鏈変竴涓粏鑺傛槸鍙互浼樺寲涓涓嬬殑銆傚嵆錛氬湪鍑洪槦鏃訛紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2鏃訛紝鍘熷湪s1鏍堝簳鐨勫厓绱狅紝涓嶇敤“鍊掑叆”s2錛堝嵆鍙?#8220;鍊?#8221;s1.Count()-1涓級錛屽彲鐩存帴寮瑰嚭浣滀負鍑洪槦鍏冪礌榪斿洖銆傝繖鏍峰彲浠ュ噺灝戜竴嬈″帇鏍堢殑鎿嶄綔銆傜害鏈変竴鍗婁漢錛岀粡鎻愮ず鍚庤兘鎰忚瘑鍒版闂銆?/span>

 

涓婅堪鎬濊礬錛屾湁浜涘彉縐嶏紝濡傦細

鍏ラ槦鏃訛紝鍏堝垽鏂?/span>s1鏄惁涓虹┖錛屽涓嶄負絀猴紝璇存槑鎵鏈夊厓绱犻兘鍦?/span>s1錛屾鏃跺皢鍏ラ槦鍏冪礌鐩存帴鍘嬪叆s1錛涘涓虹┖錛岃灝?/span>s2鐨勫厓绱犻愪釜“鍊掑洖”s1錛屽啀鍘嬪叆鍏ラ槦鍏冪礌銆?/span>

鍑洪槦鏃訛紝鍏堝垽鏂?/span>s2鏄惁涓虹┖錛屽涓嶄負絀猴紝鐩存帴寮瑰嚭s2鐨勯《鍏冪礌騫跺嚭闃燂紱濡備負絀猴紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2錛屾妸鏈鍚庝竴涓厓绱犲脊鍑哄茍鍑洪槦銆?/span>

鏈変簺浜鴻兘鍚屾椂鎯沖埌澶т紬鏂規硶鍜屽彉縐嶏紝搴旇璇村ご鑴戣繕鏄瘮杈冪伒鍏夌殑銆?/span>

 

鐩稿浜庣涓縐嶆柟娉曪紝鍙樼鐨?/span>s2濂藉儚姣旇緝“鎳?#8221;錛屾瘡嬈″嚭闃熷悗錛屽茍涓嶅皢鍏冪礌“鍊掑洖”s1錛屽鏋滆刀涓婁笅嬈¤繕鏄嚭闃熸搷浣滐紝鏁堢巼浼氶珮涓浜涳紝浣嗕笅嬈″鏋滄槸鍏ラ槦鎿嶄綔錛屾晥鐜囦笉濡傜涓縐嶆柟娉曘傛垜鏈夋椂浼氳闈㈣瘯鑰呭垎鏋愭瘮杈冧笉鍚屾柟娉曠殑鎬ц兘銆傛垜鎰熻錛堟病鍋氭繁鍏ョ爺絀訛級錛屽叆闃熴佸嚭闃熸搷浣滈殢鏈哄垎甯冩椂錛屼笂榪頒袱縐嶆柟娉曟諱綋涓婃椂闂村鏉傚害鍜岀┖闂村鏉傚害搴旇鐩稿樊鏃犲嚑錛堟棤闈炲涓皯涓垽鏂級銆?/span>

 

鐪熸鎬ц兘杈冮珮鐨勶紝鍏跺疄鏄彟涓涓彉縐嶃傚嵆錛?/span>

鍏ラ槦鏃訛紝灝嗗厓绱犲帇鍏?/span>s1銆?/span>

鍑洪槦鏃訛紝鍒ゆ柇s2鏄惁涓虹┖錛屽涓嶄負絀猴紝鍒欑洿鎺ュ脊鍑洪《鍏冪礌錛涘涓虹┖錛屽垯灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2錛屾妸鏈鍚庝竴涓厓绱犲脊鍑哄茍鍑洪槦銆?/span>

榪欎釜鎬濊礬錛岄伩鍏嶄簡鍙嶅“鍊?#8221;鏍堬紝浠呭湪闇瑕佹椂鎵?#8220;鍊?#8221;涓嬈°備絾鍦ㄥ疄闄呴潰璇曚腑寰堝皯鏈変漢璇村嚭錛屽彲鑳芥槸鏃墮棿杈冨皯鐨勭紭鏁呭惂銆?/span>

 

浠ヤ笂鍑犱釜鎬濊礬涔嶇湅娌′粈涔堥棶棰樹簡錛屼絾鍏跺疄榪樻槸鏈変釜緇嗚妭瑕佽冭檻鐨勩傚叾瀹炴棤璁轟粈涔堟柟娉曞拰鎯呭喌錛岄兘瑕佽冭檻娌℃湁鍏冪礌鍙緵鍑洪槦鏃剁殑澶勭悊錛?/span>2涓爤閮戒負絀虹殑鏃跺欙紝鍑洪槦鎿嶄綔涓瀹氫細寮曡搗寮傚父錛夈傚湪瀹為檯鍐欎唬鐮佹椂錛屽拷鐣ヨ繖浜涘垽鏂垨寮傚父澶勭悊錛岀▼搴忎細鍑虹幇闂銆傛墍浠ワ紝鑳戒笉鑳借冭檻鍒拌繖浜涚粏鑺傦紝涔熶綋鐜頒簡涓漢鐨勭礌鍏匯?/span>

 

涓漢鎰熻錛岃繖閬撻紜疄鏈夊姪浜庢垜閴村埆搴旇仒鐨勪漢銆備絾瀵逛簬闈㈣瘯錛屾瘯绔熻繕鏄鐪嬮潰璇曡呯殑緇煎悎绱犺川錛屼竴閬擄紙鎴栧嚑閬擄級棰樺畾鐢熸涓嶅彲鍙栥?/span>



dyh 2012-11-16 16:12 鍙戣〃璇勮
]]>
C++ Fragmenthttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.htmldyhdyhMon, 05 Nov 2012 08:37:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.htmlhttp://m.shnenglu.com/stdyh/comments/194562.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/194562.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/194562.html1. 妯℃澘綾葷殑瀹氫箟鍜屽疄鐜板繀欏繪斁鍦ㄥ悓涓涓ご鏂囦歡涓?br />
2. unary_function鍜宐inary_function鏄痵tl鎻愪緵鐨勪竴鍏冨拰浜屽厓鍑芥暟瀵硅薄鍩虹被錛屽瓙綾婚渶瀹炵幇()鎿嶄綔絎︼紝榪欐牱鐨勫瓙綾誨彲浠ョ敤鍦╯tl綆楁硶鍑芥暟涓紝濡俿ort, partition絳夈?div>   涓鍏冨嚱鏁板璞′緥瀛愬涓嬶細
template <typename T> 
class FilterCriterion : public unary_function<T, bool>
{

public:
    bool operator()(const T& val) const
    {
        return (val.size() > 0);
    };

};

FilterCriterion<MyType> f;
partition(vec.begin(), vec.end(), f); //瀵筂yType瀵硅薄榪涜鍒嗙被錛坰ize蹇呴』>0)
   浜屽厓鍑芥暟瀵硅薄渚嬪瓙濡備笅錛?/div>
template <class T> 
class RankCriterion : public binary_function<T, T, bool>
{
public:
bool operator()(const T& lhs, const T& rhs) const
{
return (lhs.size() > rhs.size());
};
}
RankCriterion<MyType> r;
sort(vec.begin(), vec.begin(), vec.end(), r); // 瀵筂yType瀵硅薄榪涜鎺掑簭(鎸塻ize澶у皬鎺掑簭錛?/div>
3. C++澶勭悊琛ㄨ揪寮忓彲浠ラ噰鐢ㄥ厛杞垚閫嗘嘗鍏拌〃杈懼紡錛岀劧鍚庤綆?br />http://www.cnblogs.com/adamxx/archive/2006/08/30/703267.html

4. Dll瀵煎嚭綾繪垨鍑芥暟
#ifdef SIMPLEDLL_EXPORT
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif

5. const 鎴愬憳鍑芥暟
const 鎴愬憳鍑芥暟鑾峰緱鐨勮兘鍔涳細鍙互鎿嶄綔甯擱噺瀵硅薄錛屽GetName鍑芥暟瀹氫箟涓簊tring GetName() const; 閭d箞Const A a; a.GetName();鏄兘緙栬瘧閫氳繃鐨勶紝鑻etName涓嶅畾涔変負const錛岄偅涔堜笂榪拌皟鐢ㄧ紪璇戜細澶辮觸

const鎴愬憳鍑芥暟澶卞幓鐨勮兘鍔涳細鏈夊緱蹇呮湁澶憋紝涓嶈兘淇敼綾葷殑鏁版嵁鎴愬憳錛屼笉鑳藉湪鍑芥暟涓皟鐢ㄥ叾浠栭潪const鐨勫嚱鏁?/span>

dyh 2012-11-05 16:37 鍙戣〃璇勮
]]>[杞琞C++寮婧愯法騫沖彴綾誨簱闆?/title><link>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html</link><dc:creator>dyh</dc:creator><author>dyh</author><pubDate>Fri, 27 Apr 2007 12:48:00 GMT</pubDate><guid>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html</guid><wfw:comment>http://m.shnenglu.com/stdyh/comments/23064.html</wfw:comment><comments>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/stdyh/comments/commentRss/23064.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/stdyh/services/trackbacks/23064.html</trackback:ping><description><![CDATA[     鎽樿: 緇忓吀鐨凜++搴?<br> STLport-------SGI STL搴撶殑璺ㄥ鉤鍙板彲縐繪鐗堟湰錛屽湪浠ュ墠鏈変簺緙栬瘧鍣ㄧ絎﹀悎 <br> 鏍囧噯姣旇緝榪滅殑鎯呭喌涓?閭f椂榪樻槸鏈夌敤鐨勶紝褰撶劧鐩墠vc71宸茬粡姣旇緝鎺ヨ繎鏍囧噯浜嗭紝 <br> 鏁呯洰鍓嶄笉鎬庝箞鐢ㄥ畠浜嗐?<br> Boost---------鍑嗘爣鍑嗗簱錛?鍔熻兘寮哄ぇ 娑夊強鑳芥兂鐨勫埌鐨勫ぇ閮ㄥ垎闈炵壒鍒鍩熺殑綆楁硶錛?<br> 鏈変竴涓ぇ鐨凜++紺懼尯鏀寔 <br> WxWindows-----鍔熻兘寮哄ぇ鐨勮法騫沖彴GUI搴? 錛屽畠鐨勫姛鑳藉拰緇撴瀯閮界被浼?MFC錛屾晠鍘熷垯涓?<br> 鍙互閫氳繃WxWindows鎶婄幇鏈塎FC紼嬪簭縐繪鍒伴潪Win騫沖彴涓?<br> Blitz---------楂樻晥鐜囩殑鏁板艱綆楀嚱鏁板簱 ,浣犲彲浠ヨ鍒惰ˉ鍏呬綘闇瑕佺殑綆楁硶 <br> Log4cpp-------鏃ュ織澶勭悊 錛屽姛鑳界被浼糺ava涓殑log4j <br> ACE-----------鑷傚簲閫氳鐜錛?閲嶉噺綰х殑閫氳鐜搴撱?<br> Crypto++ -----鍔?瑙e瘑綆楁硶搴? 闈炲父涓撲笟鐨凜++ 瀵嗙爜瀛﹀嚱寮忓簱 <br> CppUnit --- 涓涓?nbsp; <a href='http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/stdyh/aggbug/23064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/stdyh/" target="_blank">dyh</a> 2007-04-27 20:48 <a href="http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>c++瀵硅薄鍐呭瓨甯冨眬(杞澆)http://m.shnenglu.com/stdyh/archive/2007/01/08/17442.htmldyhdyhMon, 08 Jan 2007 13:17:00 GMThttp://m.shnenglu.com/stdyh/archive/2007/01/08/17442.htmlhttp://m.shnenglu.com/stdyh/comments/17442.htmlhttp://m.shnenglu.com/stdyh/archive/2007/01/08/17442.html#Feedback1http://m.shnenglu.com/stdyh/comments/commentRss/17442.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/17442.html銆銆鍏堥棶涓涓棶棰?涓や釜涓嶅悓綾誨瀷鐨勬寚閽堢浉浜掕漿鎹互鍚?浠栦滑鍦ㄦ暟鍊間笂鏄竴鏍風殑鍚?姣斿:

銆銆銆銆int nValue = 10;
銆銆銆銆int *pInt = &nValue;
銆銆銆銆void *pVoid = pInt;
銆銆銆銆char *pChar = (char*)pInt;


銆銆榪欎簺鎸囬拡鐨勫?涓嶆槸璇存寚閽堟寚鍚戠殑鍐呭瓨鐨勫唴瀹?鏄竴鏍風殑鍚? 濡傛灉浣犵殑鍥炵瓟鏄?yes,閭e鏋滄槸涓涓被鐨勭戶鎵夸綋緋誨憿?鍦ㄧ戶鎵跨被鍚戝熀綾昏漿鎹㈢殑榪囩▼涓?鎸囬拡鐨勬暟鍊艱繕鏄笉鍙樺寲鐨勪箞?濡傛灉浣犵殑鍥炵瓟鏄?涓嶄竴瀹氫細鍙樺寲,瑕佺湅綾葷殑浣撶郴鏄庝箞璁捐鐨?鐨勮瘽,閭f伃鍠滀綘,涓嶇敤鐪嬩笅鍘諱簡.濡傛灉浣犺繕涓嶇‘瀹氱┒绔熷彉榪樻槸涓嶅彉,絀剁珶鍝簺鍙?鍝簺涓嶅彉,絀剁珶涓轟粈涔堣鍙樹負浠涔堜笉鍙樼殑璇?鎺ョ潃鐪嬩笅鏉?

銆銆c++ 鏍囧噯涓嶈瀹?c++ 瀹炵幇鐨勬椂鍊欑殑瀵硅薄鐨勫叿浣撶殑鍐呭瓨甯冨眬,闄や簡鍦ㄦ煇浜涙柟闈㈡湁灝忕殑闄愬埗浠ュ,c++ 瀵硅薄鍦ㄥ唴瀛橀噷闈㈢殑甯冨眬瀹屽叏鏄敱緙栬瘧鍣ㄨ嚜琛屽喅瀹?榪欓噷鎴戜篃鍙槸璁ㄨ vc++ .net 2003 build 7.1.3091 鐨勫疄鐜版柟寮?鎴戝茍娌℃湁鍦?vc5 vc6 vc.net 2002 浠ュ強鍏朵粬鐨?2003 build 涓婇潰鍋氳繃嫻嬭瘯,緇撹涔熻涓嶉傚悎閭d簺緙栬瘧騫沖彴.榪欎簺灞炰簬緙栬瘧鍣ㄥ叿浣撳疄鐜?ms 淇濈暀鏈夊湪涓嶉氱煡浣犳垜鐨勬儏鍐典笅浣滃嚭鏇存敼鐨勬潈鍒?搴熻瘽榪欎箞澶?椹笂寮濮?

銆銆瀵逛簬 c 鐨勫唴寤烘寚閽堢殑杞崲,緇撴灉鏄笉鐢ㄥ璁ㄨ鐨?鎴戜滑鍙槸璁ㄨ c++ 鐨勫璞?浠庢渶綆鍗曠殑寮濮?

銆銆銆銆class CBase
銆銆銆銆{
銆銆銆銆public:
銆銆銆銆銆銆int m_nBaseValue;
銆銆銆銆};


銆銆榪欐牱鐨勪竴涓被鍦ㄥ唴瀛橀噷鏀劇疆鏄潪甯哥畝鍗曠殑,浠栧崰鏈?涓?bytes 鐨勭┖闂?涓嶇敤澶氳,鎴戜滑浠庝粬媧劇敓涓涓被鍑烘潵.

銆銆銆銆class CDerive1 : public CBase
銆銆銆銆{
銆銆銆銆public:
銆銆銆銆銆銆int m_nDerive1Value;
銆銆銆銆};


銆銆CDerive1 鐨勫璞″湪鍐呭瓨閲岄潰鏄庝箞鏀劇殑鍛? 涔熷緢綆鍗?鍗犳湁8涓?bytes 鐨勭┖闂?鍓?涓?bytes 灞炰簬 CBase 綾?鍚庡洓涓?bytes 灞炰簬鑷繁.涓涓狢Derive1 鐨勬寚閽堣漿鎹㈡垚涓涓?CBase 鐨勬寚閽?緇撴灉鏄竴鏍風殑.涓嬮潰鎴戜滑鍔犱笂澶氶噸緇ф壙鐪嬬湅.

銆銆銆銆class CFinal : public CDerive,public CBase // 榪欓噷鐨?CDerive 鏄竴涓拰 CBase 宸笉澶氱殑鍩虹被
銆銆銆銆{
銆銆銆銆public:
銆銆銆銆銆銆int m_nFinalValue;
銆銆銆銆};


銆銆CFinal 鐨勫璞″湪鍐呭瓨閲岄潰鐨勫竷灞紼嶅井澶嶆潅涓鐐?浣嗘槸涔熷緢瀹規槗鎯寵薄,浠栧崰鏈?12 涓?bytes 鐨勭┖闂?鍓?涓睘浜?CDerive,涓棿4涓睘浜?CBase,鍚庨潰4涓墠鏄嚜宸辯殑.閭d竴涓?CFinal 鐨勬寚閽堣漿鎹㈡垚涓涓?CDerive 鎸囬拡,鏁板間細鍙樹箞? 杞崲鎴愪竴涓?CBase 鎸囬拡鍛?鍙堜細鍙樺寲涔?絳旀鏄?鍓嶄竴涓笉鍙?鍚庝竴涓鍙樺寲,閬撶悊闈炲父鐨勬槑鏄?CFinal 瀵硅薄鐨勫紑澶村垰濂芥槸涓涓?CDerive 瀵硅薄,鑰?CBase 瀵硅薄鍗村湪 CFinal 瀵硅薄鐨勪腑闂?鑷劧鏄鍙樺寲鐨勪簡,鍏蜂綋鎬庝箞鍙樺寲鍛? 鍔?4 灝?ok(鑷劧瑕佹鏌ユ槸鍚︽槸絀烘寚閽?.

銆銆銆銆CBase *pBase = pFinal ? (CBase*)((char*)pFinal + sizeof(CDerive)) : 0;// 褰撲綘鍐欎笅 pBase = pFinal 鐨勬椂鍊?鍏跺疄鏄繖鏍風殑

銆銆榪欑涓嶅甫 virtual 鐨勭戶鎵垮氨榪欎箞綆鍗?鍙槸鍔犱笂涓涓?offset 鑰屽凡.涓嬮潰鎴戜滑鐪嬬湅濡傛灉鍔犱笂 virtual function 鐨勬椂鍊欐槸浠涔堟牱瀛愮殑鍛?
榪樻槸浠庣畝鍗曠被寮濮?

銆銆銆銆class CBase
銆銆銆銆{
銆銆銆銆public:
銆銆銆銆銆銆virtual void VirtualBaseFunction(){}
銆銆銆銆銆銆int m_nBaseValue;
銆銆銆銆};


銆銆榪欓噷鍒繪剰娌℃湁浣跨敤 virtual destructor,鍥犱負榪欎釜鍑芥暟紼嶅井鏈変簺涓嶅悓.榪樻槸鍚屾牱鐨勯棶棰?CBase 綾誨湪鍐呭瓨涓婂崰澶氬ぇ鐨勭┖闂?榪樻槸 4 bytes 涔? 絳旀鏄?no, 鍦ㄦ垜鐨勭紪璇戝櫒涓婇潰鏄?8 bytes,澶氬嚭鏉ョ殑 4 bytes 鏄?__vfptr(watch 紿楀彛鐪嬭鐨勫悕瀛?,浠栨槸涓涓寚閽?鎸囧悜浜嗙被鐨?vtable,閭d粈涔堟槸 vtable 鍛?浠栨槸鐢ㄦ潵騫蹭粈涔堢殑鍛? vtable 鏄敤鏉ユ敮鎻?virtual function 鏈哄埗鐨?浠栧叾瀹炴槸涓涓嚱鏁版寚閽堟暟緇?騫朵笉絳夊悓浜巆/c++璇█閲岄潰鐨勬寚閽堟暟緇?鍥犱負浠栦滑鐨勭被鍨嬪茍涓嶄竴瀹氭槸涓鏍風殑.)浠栫殑姣忎竴涓厓绱犻兘鎸囧悜浜嗕竴涓綘瀹氫箟鐨?virtual function,榪欐牱閫氳繃涓涓腑闂村眰鏉ュ埌杈懼姩鎬佽繛緙栫殑鏁堟灉,榪欎簺鎸囬拡鏄湪紼嬪簭榪愯鐨勬椂鍊欏噯澶囧Ε褰撶殑,鑰屼笉鏄湪緙栬瘧鐨勬椂鍊欏噯澶囧Ε褰撶殑,榪欎釜灝辨槸鍔ㄦ佽仈緙栫殑鐩殑,鍏蜂綋鏄敱璋佹潵璁劇疆榪欎簺鎸囬拡鐨勫憿?constructor/destructor/copy constructor/assignment operator浠栦滑瀹屾垚鐨?涓嶇敤濂囨?緙栬瘧鍣ㄤ細鍦ㄤ綘鍐欑殑榪欎簺鍑芥暟閲岄潰瀹夋彃浜涘繀瑕佺殑浠g爜鐢ㄦ潵璁劇疆 vtable 鐨勫?濡傛灉浣犳病鏈夊啓榪欎簺鍑芥暟,緙栬瘧鍣ㄤ細鍦ㄩ傚綋鐨勬椂鍊欏府浣犵敓鎴愯繖浜涘嚱鏁?鏄庣櫧涓鐐? vtable 鏄敤鏉ユ敮鎸?virtual function 鏈哄埗鐨?鑰岄渶瑕?virtual 鏈哄埗鐨勭被鍩烘湰涓婇兘浼氱敱涓涓?__vfptr 鎸囧悜浠栬嚜宸辯殑 vtable.鍦ㄨ皟鐢?virtual function鐨勬椂鍊?緙栬瘧鍣ㄨ繖鏍峰畬鎴?

銆銆銆pBase->VirtualBaseFunction(); => pBase->__vfptr[0]();// 0 鏄綘鐨剉irtual function 鍦?vtable 涓殑 slot number,緙栬瘧鍣ㄥ喅瀹?/font>

銆銆鐜板湪搴旇寰堟兂璞?CBase 鐨勫ぇ灝忎簡鍚?閭h繖涓?__vfptr 鏄斁鍒頒粈涔堜綅緗殑鍛? 鍦?m_nBaseValue 涔嬪墠榪樻槸涔嬪悗鍛? 鍦ㄦ垜鐨勭紪璇戝櫒涓婄湅鏉?鏄湪涔嬪墠,涓轟粈涔堣鏀懼埌涔嬪墠,鏄洜涓哄湪閫氳繃 鎸囧悜綾繪垚鍛樺嚱鏁扮殑鎸囬拡璋冪敤 virtual function 鐨勬椂鍊欒兘灝戜簺浠g爜(鎸囨眹緙栦唬鐮?,榪欎釜鍘熷洜榪欓噷灝變笉娣卞叆璁ㄨ浜?鏈夊叴瓚g殑鍚屽鍙互鐪嬬湅 inside the c++ object model 涓涔?
銆銆鎺ヤ笅鏉?鎴戜滑鍔犱笂緇ф壙鏉ョ湅鐪?

銆銆銆銆class CDerive1 : public CBase
銆銆銆銆{
銆銆銆銆public:
銆銆銆銆銆銆virtual void VirtualDerive1Function();
銆銆銆銆};


銆銆榪欎釜鏃跺欎綘涔熻瑕佽,鍐呭瓨甯冨眬璺熸病鏈?virtual 鏄竴鏍風殑,鍙笉榪囨瘡涓被澶氫簡涓涓?__vfptr 鑰屽凡,鍛?..榪欎釜鏄笉瀵圭殑,鍦ㄦ垜鐨勭紪璇戝櫒涓婇潰 涓や釜綾誨叡浜悓涓涓?__vfptr, vtable 閲岄潰鏀炬湁涓や釜鎸囬拡,涓涓槸涓や釜綾誨叡浜殑,涓涓彧灞炰簬 CDerive1 綾?璋冪敤鐨勬椂鍊欏浣曞憿?

銆銆銆pDerive1->VirtualDerive1Function() => pDerive1->__vfptr[1]();
銆銆銆pDerive1->VirtualBaseFunction() => pDerive1->__vfptr[0]();


銆銆鑷充簬鎸囬拡鐨勭浉浜掕漿鎹?鏁板艱繕鏄病鏈夊彉鍖栫殑(涔熸鏄拷姹傝繖縐嶆晥鏋?鎵浠ユ妸 __vfptr 鏀懼埌綾葷殑寮澶?鍥犱負璋冩暣 this 鎸囬拡涔熸槸瑕佸崰鏈夎繍琛屾椂鐨勬椂闂寸殑).

銆銆鐜板湪鍔犱笂澶氶噸緇ф壙鐬х灖,浠g爜鎴戜笉鍐欎笂鏉ヤ簡,灝辮窡涓婇潰鐨?CFinal, CDerive, CBase 浣撶郴涓鏍?鍙槸姣忎釜綾誨涓涓猇irtualxxxFunction鍑烘潵,榪欎釜鏃跺欑殑鎸囬拡璋冩暣榪樻槸娌℃湁浠涔堝彉鍖?鎵浠ユ垜浠彧鏄湅鐪?vtable 鐨勬儏鍐?浣犱細璇?CDerive 鍜?CFinal 鍏變韓涓涓?__vfptr,鑰?CBase 鏈変竴涓嚜宸辯殑 __vfptr,鑰?CFinal 鐨?__vfptr 鏈?2 涓猻lot,榪欎釜緇撹鏄紜殑. 鍚屾椂浣犱篃浼氳 閫氳繃 CFinal 綾昏皟鐢?CBase 鐨勫嚱鏁版槸瑕佽繘琛屾寚閽堣皟鏁寸殑,yes you'r right,涓嶄粎浠呮槸 this 鎸囬拡璋冩暣(鍛?this 鎸囬拡浼氭垚涓?function 鐨勪竴涓弬鏁?,榪樿璋冩暣 vtable 鐨勫?

銆銆銆pFinal->VirtualBaseFunction() => (CBase*)((char*)pFinal + sizeof(CDerive))->__vfptr[0]();

銆銆銆杞崲鎴?asm 鐨勪唬鐮佸ぇ綰︽槸榪欐牱鐨?

銆銆銆mov eax,[pFinal] ; pFinal is a local object,pFinal will be epb - xx
銆銆銆add eax,8 ; 8 = sizeof(CDerive)
銆銆銆mov ecx,eax ; ecx is this pointer
銆銆銆mov edx,[eax] ; edx = vtable address
銆銆銆call [edx] ; call vtable[0]


銆銆鍐欏埌榪欓噷涔熷氨鏄庣櫧this鎸囬拡鏄庝箞璋冩暣鐨?甯?virtual function 鐨勭戶鎵夸篃涓嶅鏉?this鎸囬拡璋冩暣涔熸槸寰堢畝鍗曠殑,涓嬮潰鐪嬫渶澶嶆潅鐨勯儴鍒?virtual inheritance.

銆銆鎴戠殑緙栬瘧鍣ㄦ敮鎸佽櫄鎷熺戶鎵跨殑鏂瑰紡鍜岃櫄鍑芥暟鐨勬柟寮忓樊涓嶅,閮芥槸閫氳繃涓涓?table 瀹屾垚,鍙槸榪欎釜灝辯湅涓嶅埌 vc 璧嬩簣鐨勫悕瀛椾簡,鎴戜滑鍙粬 vbtable 鍚?緙栬瘧鍣ㄥ悓鏍峰湪綾婚噷闈㈠姞鍏ヤ竴涓寚鍚?vbtable 鐨勬寚閽?鎴戜滑鍙粬 __vbptr 鍚?榪欎釜鎸囬拡鎸囧悜浜?vbtable ,鑰?vbtable 閲岄潰鐨勬瘡涓欏瑰搴斾簡涓涓熀綾?vbtable 璁板綍浜嗘瘡涓熀綾葷殑鏌愪竴涓亸縐婚噺,閫氳繃榪欎釜鍋忕Щ閲忓氨鑳借綆楀嚭鍏蜂綋綾葷殑鎸囬拡鐨勪綅緗?鐪嬩釜綆鍗曠殑渚嬪瓙:

銆銆銆class CBase
銆銆銆{
銆銆銆public:
銆銆銆銆銆virtual ~CBase(){}
銆銆銆};

銆銆銆class CMid1 : public virtual CBase
銆銆銆{
銆銆銆public:
銆銆銆銆銆virtual ~CMid1(){}
銆銆銆銆銆int m_nMid1;
銆銆銆};

銆銆銆class CMid2 : public virtual CBase
銆銆銆{
銆銆銆public:
銆銆銆銆銆virtual ~CMid2(){}
銆銆銆銆銆int m_nMid2;
銆銆銆};

銆銆銆class CFinal : public CMid1,public CMid2
銆銆銆{
銆銆銆public:
銆銆銆銆銆virtual ~CFinal(){}
銆銆銆銆銆int m_nFinal;
銆銆銆};

銆銆銆CFinal final;
銆銆銆CFinal *pFinal = &final;聽聽聽 // pFinal = 0x0012feb4;
銆銆銆CBase *pBase = pFinal; // pBase = 0x0012fec8 = pFinal + 0x14;
銆銆銆CMid1 *pMid1 = pFinal; // pMid1 = 0x0012feb4 = pFinal;
銆銆銆CMid2 *pMid2 = pFinal; // pMid2 = 0x004210b4 = pFinal;


銆銆緇撴灉璁╀綘鍚冩儕鍚? 鏈濂囨殑鍦版柟灞呯劧鏄?CMid2 鍜?CMid1 鐨勫湴鍧灞呯劧鏄竴鏍風殑,榪欎釜鏄洜涓?vc 鎶?vbtable 鏀懼埌浜?CFinal 綾葷殑寮澶寸殑鍘熷洜,鑰孋Mid1 鍜?CMid2 涔熷悓鏍瘋浣跨敤榪欎釜 vbtable, 鎵浠?榪欎釜涓変釜鐨勫湴鍧涔熷氨蹇呴』鐩稿悓浜?閭?CBase 鐨勫湴鍧鏄庝箞鍑烘潵鐨勫憿? 鍛?..鍒氬垰鎴戜滑璇翠簡 vbtable 鏀懼埌浜咰Final 鐨勫紑澶?vc 涓瀹氫細鏀懼湪寮澶村悧?絳旀鏄笉涓瀹?榪欎釜紼嶅悗瑙i噴).鍦ㄦ垜鐨勬満鍣ㄤ笂闈?final 瀵瑰簲鍐呭瓨鐨勭涓涓?dword 鏄?0x00426030,鏌ョ湅榪欎釜鍦板潃,絎竴涓猟word 鏄?0 ,絎簩涓氨鏄?0x14,鍒氬ソ鍜?pBase 鐨勫亸縐葷浉鍚?榪欎釜鍙槸宸у悎,涔熻浣犳崲涓被鐨勭戶鎵夸綋緋誨氨瀹屽叏涓嶅悓浜?浣嗘槸鎴戝彧鏄兂璇存槑涓鐐?鍩虹被鐨勫亸縐昏綆楁槸鍜?vbtable 鐨勫肩浉鍏寵仈鐨?涓嬮潰鎴戜滑灝辨潵鐪嬬湅 vc 鏄庝箞璁$畻榪欎簺鍋忕Щ鐨?
銆銆vc 鍦ㄥ垎鏋愭垜浠殑浠g爜鐨勬椂鍊?鐢熸垚浜嗕竴浠界被鐨勭戶鎵夸綋緋諱俊鎭?鍏朵腑鏈変竴涓彨 thisDisplacement 鐨刜PMD緇撴瀯:

銆銆銆銆struct _PMD // total undocumented
銆銆銆銆{
銆銆銆銆銆銆int mdisp; // i think the meaning is Multiinheritance DISPlacement
銆銆銆銆銆銆int pdisp; // Pointer to vbtable DISPlacement
銆銆銆銆銆銆int vdisp; // Vbtable DISPlacement
銆銆銆銆};


銆銆緇撴瀯鐨勫悕瀛楀拰鎴愬憳鍙橀噺鐨勫悕瀛楃‘紜疄瀹炴槸 vc 鐨勫悕瀛?鍦?watch 紿楀彛杈撳叆 (_PMD*)0 灝辮兘鐪嬪埌榪欎釜緇撴瀯鐨勮緇嗕俊鎭?,姣忎釜瀛楁鐨勫惈涔夊嵈鏄垜鑷繁鐚滄祴鍑烘潵鐨?mdisp 澶ф鐢ㄦ潵琛ㄧず澶氶噸緇ф壙(鍖呮嫭鍗曚竴緇ф壙)鐨勬椂鍊欑殑鍋忕Щ閲?pdisp 琛ㄧず vbtable 鐨勫亸縐婚噺,鑰?vdisp 琛ㄧず綾誨湪 vbtable 閲岄潰鐨勪笅鏍?閭d箞鏈変簡榪欎釜緇撴瀯鎬庢牱鎵嶈兘瀹屾垚鎸囬拡鐨勮漿鎹㈠憿?鍋囧鎴戜滑鏈変竴涓淳鐢熺被鎸囬拡 pFinal,瑕佽漿鎹㈡垚涓涓壒瀹氱殑鍩虹綾?鎴戜滑棣栧厛瑕佺煡閬撳拰榪欎釜鍩虹被瀵瑰簲鐨?_PMD 緇撴瀯鐨勪俊鎭?榪欎釜淇℃伅鐨勮幏鍙?鎴戞殏鏃舵病鏈夋壘鍒頒竴涓潪甯告柟渚跨殑鏂規硶,鐜板湪鎴戜嬌鐢ㄧ殑鏂規硶涓嬮潰浼氭湁鎻忚堪),鏈変簡榪欎釜淇℃伅浠ュ悗,杞崲灝辨柟渚夸簡.棣栧厛鎵懼埌 vbtabel 鐨勫湴鍧 *(pFinal + pdisp),鐒跺悗鎵懼埌鍩虹被鐨勫亸縐?*(*(pFinal + pdisp) + vdisp) 榪欎釜鍋忕Щ鍊兼槸鐩稿vbtable鐨?鎵浠ヨ繕瑕佸姞涓?vbtable鐨勫亸縐?鏈鍚庡姞涓?mdisp鐨勫亸縐?濡備笅:

銆銆char *pFinal = xxx; // need a init value
銆銆char *pBase; // we must calc
銆銆pBase = pFinal + mdisp + *(int *)(*(int *)(pFinal + pdisp) + vdisp) + pdisp;


銆銆娉ㄦ剰: 褰?pdisp < 0 鐨勬椂鍊欏氨琛ㄧず榪欎釜綾繪病鏈?vbtable 鐩存帴浣跨敤 pFinal + mdisp 灝卞緱鍒扮粨鏋滀簡.
銆銆鎵浠ヨ繖涓粨鏋勬槸涓涓氱敤鐨勭粨鏋?涓撻棬鐢ㄤ綔綾誨瀷杞崲,涓嶇鏄湁鏃犺櫄緇ф壙閮借兘浣跨敤榪欎釜緇撴瀯榪涜綾誨瀷杞崲.

銆銆閫氳繃榪欎釜緇撴瀯,鎴戜滑涔熻兘鐪嬪埌 vc 鏄庢牱甯冨眬榪欎釜 object 鐨?

銆銆鐪嬪埌榪欓噷,涔熻浣犺澶у懠涓鍙f皵,濡堝鍛,涓涓被鍨嬭漿鎹㈣榪欎箞鐨勯夯鐑﹀悧?鎴戠洿鎺ュ啓 pBase = pFinal 涓嶅氨鍙互浜嗗悧? 鎭枩浣犺繕娌℃湁琚垜蹇芥偁寰楁檿澶磋漿鍚?鍝堝搱.鍏跺疄浣犲啓涓嬮偅琛岃鍙ョ殑鏃跺?緙栬瘧鍣ㄥ湪甯綘鍋氳繖涓漿鎹?澶х害鐢熸垚涓嬮潰鐨勪唬鐮?br />
銆銆銆銆mov eax,[pFinal] ;final address
銆銆銆銆mov ecx,[eax] ; vbtable address *(int *)(pFinal + pdisp)
銆銆銆銆mov edx,eax ; save to edx
銆銆銆銆add edx,[ecx + 4] ; ecx + 4 is (*(int *)(pFinal + pdisp) + vdisp)
銆銆銆銆mov [pBase],edx ; edx = pFinal + mdisp + *(int *)(*(int *)(pFinal + pdisp) + vdisp) + pdisp;
銆銆銆銆; here mdisp = 0, pdisp = 0, vdisp = 4


銆銆涔熻浣犺璇翠簡,鎴戣榪欎簺涓滆タ鏉ュ共浠涔?瑕佽漿鎹㈢殑鏃跺欑洿鎺ヨ漿鎹㈠氨濂戒簡,緙栬瘧鍣ㄤ細甯仛,鐨勭‘,澶у鏁扮殑鏃跺欑‘瀹炴槸榪欐牱,浣嗘槸,鍦ㄦ煇浜涙椂鍊欏嵈騫朵笉濡傛,鐜板湪浣犺瀹炵幇涓涓姛鑳?杈撳叆涓涓寚閽?杈撳叆涓涓?_PMD 緇撴瀯,浣犺瀹炵幇涓涓狝djustPointer 鐨勫嚱鏁版潵鐢熸垚鍙︿竴涓寚閽?榪欎釜鏃跺欎綘涔熷彧鑳借繖鏍峰畬鎴愪簡,鍥犱負鎴戞病鏈夌粰浣犱袱涓寚閽堢殑鍚嶅瓧,灝辯畻緇欎簡浣犲瓧絎︿覆褰㈠紡鐨勫悕瀛椾篃娌℃湁鐢?鍛?...浣犱篃璁鎬細璇?鍔炴硶鏄湁鐨?鐨勭‘鏄湁,妯℃澘灝辮兘瀹炵幇榪欑鍔熻兘,鍛?.榪欎釜鎴戜滑鏆傛椂涓嶈璁哄叿浣撶殑瀹炵幇緇嗚妭.涔熻浣犺闂簡,絀剁珶浠涔堟椂鍊欎細鍘誨疄鐜拌繖縐嶅惉閮芥病鏈夊惉榪囩殑鍔熻兘,鍏跺疄榪欎釜鍑芥暟鏄湡姝e瓨鍦ㄧ殑,鍙笉榪囦笉鏄敱浣犳潵瀹炵幇鐨?鑰屾槸 ms 鐨勪漢瀹炵幇鐨?浣犲彧鐢ㄥ啓涓涓?甯︽湁 c++ 寮傚父鐨勭▼搴?浣跨敤 ida 鍙嶆眹緙?鐒跺悗鏌ユ壘鍑芥暟,灝辮兘鎵懼埌榪欎釜鍑芥暟浜?浠栫敤鏉ュ湪寮傚父澶勭悊鏃跺垱寤?catch 鎵闇瑕佺殑 object.鑷充簬榪欎釜璇︾粏鐨勪俊鎭?璇鋒湡寰?鎴戜細鏈蹇熷害鍐欏嚭鍏充簬 vc 鏄庢牱瀹炵幇 c++ 寮傚父鐨勬枃绔犳潵.

銆銆鏈鍚庝簡,璇磋閭d釜 _PMD 緇撴瀯鐨勮幏鍙栨柟寮?鐪嬬殑鏃跺欎笉瑕佸悆鎯?鏂規硶姣旇緝鐨勯夯鐑?姣斿鎴戞兂鐭ラ亾鍜?CFinal 綾葷浉鍏崇殑 _PMD 淇℃伅,鍏堟柊寤哄伐浣?鍐欎笅 throw pFinal 榪欐牱鐨勮鍙?緙栬瘧,鍦ㄨ繖涓鍙ョ殑鍦版柟璁劇疆鏂偣,榪愯,杞埌鍙嶆眹緙?榪涘叆 __CxxThrowException@8 鍑芥暟,榪欎釜鏃跺欎笉鍑烘剰澶栦綘鑳界湅鍒頒竴涓彨 pThrowInfo 鐨勪笢瑗?濡傛灉鐪嬩笉鍒?璇鋒墦寮"鏄劇ず絎﹀彿鍚?閫夐」),鍦?watch 紿楀彛閲岄潰杈撳叆pThrowInfo,灞曞紑浠?鐪嬪埌涓涓猵CatchableTypeArray,璁板綍涓嬩粬鐨?nCacthableTypes鐨勫?鐒跺悗鍦?watch 閲岄潰杈撳叆
pThrowInfo->pCatchableTypeArray->arrayOfCatchableTypes[0] 鍒?pThrowInfo->pCatchableTypeArray->arrayOfCatchableTypes[n], n 灝辨槸浣犲垰鍒氳褰曠殑鍊煎噺1,鍐嶅睍寮浠栦滑,浣犲氨鑳界湅鍒頒竴涓?thisDisplacement 鐨勬暟鎹?緇х畫灞曞紑灝辨槸 mdisp 絳夌瓑浜?寰堟槸楹葷儲鍚?鍝?.浣犲凡緇忕寽鍒頒簡,榪欎釜鏄拰寮傚父鏈夊叧緋葷殑.

銆銆鍚庤: 榪欐鏃墮棿,鎴戜竴鐩村湪璇諱簺鍙嶆眹緙栦箣鍚庣殑浠g爜,涔熼鏈変簺蹇冨緱,鎵浠ユ墠鏈夋兂娉曞啓涓浜涙枃绔?鎺㈣ vc 緙栬瘧鍣ㄩ矞涓轟漢鐭?澶繃鐙傚浜?鐨勭瀵?榪欎釜鏂歸潰鐨勬枃绔犱篃鏈変漢鍐欒繃,閭d簺鏂囩珷涔熺粰鎴戜笉灝戠殑鍚彂,鎴戜笉璁や負鑷繁鏄涓涓彂鐜拌繖浜涚瀵嗙殑浜?浣嗘槸鑷沖皯鎴戣嚜宸辯煡閬撶殑,鎴戞槸絎竴涓妸榪欎簺涓滆タ鍐欏嚭鏉ョ殑浜?鏂囩珷閲岄潰浣滃ⅷ澶氱殑閮ㄥ垎閮芥槸鑷繁鍙戠幇鐨?灝辮繖涓枃绔犻噷闈㈢殑鍐呭鏉ヨ,inside the c++ object model 鏄湁姣旇緝璇︾粏鐨勬弿鍐?浣嗘槸浠栧茍涓嶆槸杞崲閽堝 vc 榪欎釜緙栬瘧鍣ㄧ殑瀹炵幇,鑰?_PMD 榪欎釜緇撴瀯鎴戜篃娌℃湁鍦ㄤ粈涔堝湴鏂硅鏈変漢鎻忚堪榪?鍙槸鍦?windows develop network 鐨?002騫?2鏈堢殑鏉傚織涓婄湅鏈変漢鎻愬埌榪囪繖涓粨鏋?鍙儨浠栧嵈娌℃湁浜嗚В(鑷沖皯浠栧湪浠栧彂琛ㄦ枃绔犵殑鏃跺欐槸濡傛槸璇寸殑)榪欎釜緇撴瀯鐨勭敤澶?姝f槸鍥犱負榪欎釜鍘熷洜,鎴戞墠鏈夊啓榪欎釜鏂囩珷浠ュ強鍚庣畫鏂囩珷鐨勫啿鍔?.鎵浠?榪欎釜鏂囩珷涔熺畻鏄垜鑷繁鐨勫師鍒涘惂.榪欎釜鏂囦歡铏界劧鍜屾父鎴忓埗閫犳病鏈夊お澶х殑鍏崇郴,浣嗘槸灝?T 鑷娓呴珮,涓嶆効鎰忚嚜宸辯殑鏂囩珷琚竴甯笉鎳傜殑浜鴻瘎浠鋒潵璇勪環鍘葷殑,鎵浠ヤ篃娌℃湁鍙戝埌閭d簺钁楀悕鐨?xxx 緗戠珯,鍙彂 goldpoint.杞澆璇鋒敞鏄庡嚭澶?灝?T 瀵硅嚜宸辯殑絎竴涓師鍒涙枃绔犳瘮杈冪弽鎯?姣旇緝閲嶈,璋㈣阿).


dyh 2007-01-08 21:17 鍙戣〃璇勮
]]>
鏂囦歡鎿嶄綔eof()鐨勯棶棰?/title><link>http://m.shnenglu.com/stdyh/archive/2006/06/21/8794.html</link><dc:creator>dyh</dc:creator><author>dyh</author><pubDate>Wed, 21 Jun 2006 13:10:00 GMT</pubDate><guid>http://m.shnenglu.com/stdyh/archive/2006/06/21/8794.html</guid><wfw:comment>http://m.shnenglu.com/stdyh/comments/8794.html</wfw:comment><comments>http://m.shnenglu.com/stdyh/archive/2006/06/21/8794.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/stdyh/comments/commentRss/8794.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/stdyh/services/trackbacks/8794.html</trackback:ping><description><![CDATA[澶у鍦ㄤ嬌鐢–++鍐欐搷浣滄枃浠剁殑紼嬪簭鏃?涓瀹氫嬌鐢ㄨ繃eof()榪欎釜鍑芥暟,鐢ㄥ畠鏉ュ垽鍒枃浠剁粨鏉?浣嗘湁涓嶅皯涔熺敤鏉ュ垽鍒枃浠舵槸鍚︿負絀虹殑.浣嗘槸,榪欐牱鎿嶄綔鐨勭粨鏋滀笉鏄垜浠墍鎯崇殑.鐪嬩笅闈㈢▼搴?<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">#include聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">聽std;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽main()<br /><img id="Codehighlighter1_52_280_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_280_Open_Text.style.display='none'; Codehighlighter1_52_280_Closed_Image.style.display='inline'; Codehighlighter1_52_280_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_52_280_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_280_Closed_Text.style.display='none'; Codehighlighter1_52_280_Open_Image.style.display='inline'; Codehighlighter1_52_280_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_52_280_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_52_280_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">聽c聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">c</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽ifstream聽FILE(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">聽(FILE.eof())<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鏂囦歡鏄┖鐨?</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">endl;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);聽<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">聽(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">FILE.eof())<br /><img id="Codehighlighter1_193_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_193_239_Open_Text.style.display='none'; Codehighlighter1_193_239_Closed_Image.style.display='inline'; Codehighlighter1_193_239_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_193_239_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_193_239_Closed_Text.style.display='none'; Codehighlighter1_193_239_Open_Image.style.display='inline'; Codehighlighter1_193_239_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽</span><span id="Codehighlighter1_193_239_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_193_239_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽FILE.</span><span style="COLOR: #0000ff">get</span><span style="COLOR: #000000">(c);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽c;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span></span><span style="COLOR: #000000">聽聽聽聽<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><p>褰搕est.txt涓虹┖鏂囦歡鏃?瀹冭緭鍑虹殑鏄?c<br />濂囨?搴旇杈撳嚭鏄?鏂囦歡鏄┖鐨? while閲岄潰鐨勬搷浣滀篃搴旇涓嶇敤鍒扮殑.浣嗘槸緇撴灉鍋忓亸鍜屾垜浠墍鎯崇殑鐩稿弽.<br />濂?閭f搷浣滀簩榪涘埗鏂囦歡鍙堟槸鎬庢牱鐨勫憿?淇敼涓嬩負:<br />聽聽聽</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">聽ifstream聽FILE(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ios::</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">ios::binary);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">聽(FILE.eof())<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鏂囦歡鏄┖鐨?</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">聽聽聽聽</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">聽(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">FILE.eof())<br /><img id="Codehighlighter1_121_171_Open_Image" onclick="this.style.display='none'; Codehighlighter1_121_171_Open_Text.style.display='none'; Codehighlighter1_121_171_Closed_Image.style.display='inline'; Codehighlighter1_121_171_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_121_171_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_121_171_Closed_Text.style.display='none'; Codehighlighter1_121_171_Open_Image.style.display='inline'; Codehighlighter1_121_171_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />聽聽聽聽</span><span id="Codehighlighter1_121_171_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_121_171_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽FILE.read(</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">c,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽c;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽聽聽聽}</span></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">浠g爜鍏朵粬閮ㄥ垎鐩稿悓<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><p>緇撴灉杈撳嚭榪樻槸c..鍣?!鎬庝箞浼氳繖鏍風殑.鍒嗘槑鏄獥浜虹殑涓滆タ鍢?!鍒板簳鏄粈涔堝師鍥犲憿?<br />聽聽聽聽 緇忚繃涓孌電爺絀跺悗,鍘熸潵eof()榪斿洖true鐨勬潯浠舵槸"璇誨埌鏂囦歡緇撴潫絎?錛岃屼笉鏄枃浠跺唴瀹圭殑鏈鍚庝竴涓瓧絎︺?br />瑕佹竻妤?鏂囦歡緇撴潫絎?(0xff).灝辨槸璇存垜浠枃浠舵渶鍚庣殑瀛楃涓嶆槸鏂囦歡緇撴潫絎?鑰屾渶鍚庣殑瀛楃鐨勪笅涓浣嶆墠鏄?鎵浠ユ搷浣滃啀璇誨涓嬈?灝變負浠涔堜笂闈f (FILE.eof())鎬繪槸false鐨? 鍦ㄤ竴浜涚紪璇戝櫒涓?dev c++),瀹冭鍒版渶鍚庝竴涓瓧絎﹀悗鏂囦歡浣嶇疆鐨勬寚閽堜細瀹氬湪閭e効,鎵浠ュ氨浼氶噸澶嶆渶鍚庝竴涓瓧絎?聽聽聽聽聽<br />聽聽聽 鍦ㄤ竴涓鍥界殑CPP璁哄潧瑙佸埌涓浣嶅悓蹇楃殑浠g爜鍒氬ソ鏈夎繖瑙e喅鏂規硶.鐜板湪鎶婁笂闈㈢殑浠g爜鏀逛負涓嬮潰鐨?</p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">#include聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />#include聽</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">fstream.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽main()<br /><img id="Codehighlighter1_75_355_Open_Image" onclick="this.style.display='none'; Codehighlighter1_75_355_Open_Text.style.display='none'; Codehighlighter1_75_355_Closed_Image.style.display='inline'; Codehighlighter1_75_355_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_75_355_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_75_355_Closed_Text.style.display='none'; Codehighlighter1_75_355_Open_Image.style.display='inline'; Codehighlighter1_75_355_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_75_355_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_75_355_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">聽c聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">c</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽ifstream聽FILE(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">聽(FILE.peek()聽</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">聽EOF)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">淇敼聽</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_163_220_Open_Image" onclick="this.style.display='none'; Codehighlighter1_163_220_Open_Text.style.display='none'; Codehighlighter1_163_220_Closed_Image.style.display='inline'; Codehighlighter1_163_220_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_163_220_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_163_220_Closed_Text.style.display='none'; Codehighlighter1_163_220_Open_Image.style.display='inline'; Codehighlighter1_163_220_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">聽聽聽聽</span><span id="Codehighlighter1_163_220_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_163_220_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鏂囦歡鏄┖鐨?</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽endl;聽<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span></span><span style="COLOR: #000000">聽聽聽聽聽聽聽<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">聽(FILE.peek()聽</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">聽EOF)</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">淇敼</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_268_314_Open_Image" onclick="this.style.display='none'; Codehighlighter1_268_314_Open_Text.style.display='none'; Codehighlighter1_268_314_Closed_Image.style.display='inline'; Codehighlighter1_268_314_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_268_314_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_268_314_Closed_Text.style.display='none'; Codehighlighter1_268_314_Open_Image.style.display='inline'; Codehighlighter1_268_314_Open_Text.style.display='inline';" src="http://m.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">聽聽聽聽</span><span id="Codehighlighter1_268_314_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/images/dot.gif" /></span><span id="Codehighlighter1_268_314_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽FILE.</span><span style="COLOR: #0000ff">get</span><span style="COLOR: #000000">(c);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽cout聽</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">聽c;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽}</span></span><span style="COLOR: #000000">聽聽聽聽<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://m.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://m.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><p>涓昏鐨勬槸鎶奺of()鏀逛負peek() == EOF鏉ュ垽鍒?鍏朵腑peek()鏄彇鏂囦歡褰撳墠鎸囬拡,EOF鏄枃浠跺熬鏍囩,瀹冪殑鍊間負-1.鎵浠ラ噰鐢ㄨ繖縐嶆柟娉曞氨瑙e喅涓婇潰eof()鐨勯棶棰樹簡..榪欑鏂規硶涔熷彲浠ョ敤鍦ㄨ鍐欎簩榪涘埗鏂囦歡涓?</p><img src ="http://m.shnenglu.com/stdyh/aggbug/8794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/stdyh/" target="_blank">dyh</a> 2006-06-21 21:10 <a href="http://m.shnenglu.com/stdyh/archive/2006/06/21/8794.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://tutu80.com" target="_blank">久久久99精品免费观看不卡</a>| <a href="http://sdsankeguo.com" target="_blank">免费观看不卡av</a>| <a href="http://3dprintingferuima.com" target="_blank">亚洲靠逼com</a>| <a href="http://ccc982.com" target="_blank">欧美日韩在线电影</a>| <a href="http://88844401.com" target="_blank">亚洲欧美激情四射在线日 </a>| <a href="http://609005.com" target="_blank">日韩视频在线免费</a>| <a href="http://4186a.com" target="_blank">久久一区二区三区av</a>| <a href="http://56myf.com" target="_blank">一区二区三区免费在线观看</a>| <a href="http://www-4890.com" target="_blank">国产精品色婷婷</a>| <a href="http://17vx.com" target="_blank">欧美1级日本1级</a>| <a href="http://305838.com" target="_blank">伊人婷婷欧美激情</a>| <a href="http://92y5.com" target="_blank">亚洲韩国精品一区</a>| <a href="http://www-34909.com" target="_blank">亚洲欧美日韩中文播放</a>| <a href="http://ynjzwh.com" target="_blank">欧美va亚洲va国产综合</a>| <a href="http://9lunli.com" target="_blank">欧美在线播放</a>| <a href="http://hjk56.com" target="_blank">久久精品日韩一区二区三区</a>| <a href="http://bmcshy.com" target="_blank">欧美一区二区高清在线观看</a>| <a href="http://ttzbdl.com" target="_blank">亚洲一二三四久久</a>| <a href="http://ww245434.com" target="_blank">亚洲免费婷婷</a>| <a href="http://55555549.com" target="_blank">亚洲一区日韩在线</a>| <a href="http://www930666.com" target="_blank">亚洲深夜av</a>| <a href="http://qq6699.com" target="_blank">久久精品亚洲一区二区三区浴池</a>| <a href="http://yzxq520.com" target="_blank">一本一道久久综合狠狠老精东影业</a>| <a href="http://yy306.com" target="_blank">亚洲国产精品一区二区第一页</a>| <a href="http://xiaoyaer.com" target="_blank">麻豆91精品</a>| <a href="http://4884888.com" target="_blank">欧美国产日本</a>| <a href="http://20074972.com" target="_blank">亚洲午夜羞羞片</a>| <a href="http://wzxjzx.com" target="_blank">香蕉久久一区二区不卡无毒影院 </a>| <a href="http://www-4564949.com" target="_blank">国产精品无人区</a>| <a href="http://7redy.com" target="_blank">国产在线精品一区二区夜色</a>| <a href="http://6aaee.com" target="_blank">亚洲日本va在线观看</a>| <a href="http://zhuankee.com" target="_blank">亚洲欧美在线免费观看</a>| <a href="http://yy0754.com" target="_blank">午夜精品一区二区三区在线视</a>| <a href="http://951738.com" target="_blank">亚洲在线视频免费观看</a>| <a href="http://szsywine.com" target="_blank">亚洲欧美www</a>| <a href="http://jrtkpx.com" target="_blank">农夫在线精品视频免费观看</a>| <a href="http://bgflee.com" target="_blank">亚洲福利视频在线</a>| <a href="http://100736.com" target="_blank">先锋影院在线亚洲</a>| <a href="http://yeyesaoqi.com" target="_blank">美女主播一区</a>| <a href="http://486be.com" target="_blank">99国产精品久久久久老师</a>| <a href="http://096577.com" target="_blank">亚洲欧美日韩综合aⅴ视频</a>| <a href="http://7a7d.com" target="_blank">理论片一区二区在线</a>| <a href="http://4448884.com" target="_blank">国产精品夜夜夜</a>| <a href="http://wanshunpu.com" target="_blank">91久久线看在观草草青青</a>| <a href="http://7811c.com" target="_blank">亚洲一区免费观看</a>| <a href="http://jm1688e.com" target="_blank">亚洲片国产一区一级在线观看</a>| <a href="http://caosee.com" target="_blank">欧美在线观看www</a>| <a href="http://wansilv.com" target="_blank">国产精品一区视频网站</a>| <a href="http://xxxbobba.com" target="_blank">久久高清一区</a>| <a href="http://5553303.com" target="_blank">日韩系列在线</a>| <a href="http://638179.com" target="_blank">午夜精品久久久久久久蜜桃app </a>| <a href="http://wwwmm131.com" target="_blank">欧美一区二区成人6969</a>| <a href="http://tp112.com" target="_blank">亚洲人成在线播放</a>| <a href="http://233116.com" target="_blank">免费在线成人av</a>| <a href="http://www7495.com" target="_blank">亚洲精品日本</a>| <a href="http://zgztby.com" target="_blank">91久久久久久</a>| <a href="http://scqike.com" target="_blank">国产精品第三页</a>| <a href="http://799858.com" target="_blank">久久精品国产一区二区三</a>| <a href="http://www-777324.com" target="_blank">欧美在线播放一区二区</a>| <a href="http://syddzs.com" target="_blank">在线观看一区二区视频</a>| <a href="http://qdzhudai.com" target="_blank">亚洲综合色自拍一区</a>| <a href="http://kedou09.com" target="_blank">一本大道久久精品懂色aⅴ</a>| <a href="http://wwwbbb888999.com" target="_blank">一本色道久久88亚洲综合88</a>| <a href="http://www789yys.com" target="_blank">欧美成人嫩草网站</a>| <a href="http://9993334.com" target="_blank">欧美国产欧美亚洲国产日韩mv天天看完整 </a>| <a href="http://www5566szy.com" target="_blank">亚洲国产精品传媒在线观看</a>| <a href="http://www-833898.com" target="_blank">99精品欧美一区二区三区</a>| <a href="http://4bbbbb.com" target="_blank">欧美激情麻豆</a>| <a href="http://l5076.com" target="_blank">亚洲综合视频网</a>| <a href="http://tuiliqi.com" target="_blank">亚洲综合另类</a>| <a href="http://www993997.com" target="_blank">国产伦精品免费视频</a>| <a href="http://3451215.com" target="_blank">欧美+亚洲+精品+三区</a>| <a href="http://xxoo668.com" target="_blank">国产精品a久久久久久</a>| <a href="http://birhit.com" target="_blank">欧美成人影音</a>| <a href="http://www5123ri.com" target="_blank">国产午夜精品久久久久久免费视</a>| <a href="http://chenyirong.com" target="_blank">午夜天堂精品久久久久 </a>| <a href="http://03qt.com" target="_blank">亚洲精品1区2区</a>| <a href="http://97aixxxx.com" target="_blank">亚洲综合三区</a>| <a href="http://259758.com" target="_blank">亚洲国产综合在线</a>| <a href="http://eeii33.com" target="_blank">羞羞视频在线观看欧美</a>| <a href="http://xiehaihua.com" target="_blank">亚洲素人一区二区</a>| <a href="http://zj-jufeng.com" target="_blank">欧美一区二区三区的</a>| <a href="http://filmcameralibrary.com" target="_blank">国产日韩精品一区二区浪潮av </a>| <a href="http://www227zh.com" target="_blank">国产日韩欧美电影在线观看</a>| <a href="http://balqueen.com" target="_blank">亚洲国产精彩中文乱码av在线播放</a>| <a href="http://1177898.com" target="_blank">免费观看成人www动漫视频</a>| <a href="http://aass22.com" target="_blank">国产精品影片在线观看</a>| <a href="http://488089.com" target="_blank">国产精品免费网站在线观看</a>| <a href="http://17ang.com" target="_blank">最近中文字幕日韩精品 </a>| <a href="http://710477.com" target="_blank">亚洲一区二区三区精品动漫</a>| <a href="http://6168138.com" target="_blank">久久久久久久精</a>| <a href="http://767296.com" target="_blank">欧美~级网站不卡</a>| <a href="http://605012.com" target="_blank">韩国成人福利片在线播放</a>| <a href="http://52wenxiu.com" target="_blank">午夜性色一区二区三区免费视频</a>| <a href="http://szxrdr.com" target="_blank">性欧美video另类hd性玩具</a>| <a href="http://xxoo668.com" target="_blank">欧美日韩国产综合新一区</a>| <a href="http://teqmeta.com" target="_blank">亚洲欧洲视频</a>| <a href="http://jisuyswang.com" target="_blank">精品动漫3d一区二区三区免费版</a>| <a href="http://215920.com" target="_blank">欧美成人激情在线</a>| <a href="http://by27333.com" target="_blank">亚洲午夜电影在线观看</a>| <a href="http://xindefalv.com" target="_blank">精品动漫一区二区</a>| <a href="http://49234c.com" target="_blank">亚洲一区二区三区在线看</a>| <a href="http://8331651.com" target="_blank">久久久精品五月天</a>| <a href="http://boocnn.com" target="_blank">99成人免费视频</a>| <a href="http://993934.com" target="_blank">韩国av一区二区三区在线观看</a>| <a href="http://9ctv2.com" target="_blank">欧美成人xxx</a>| <a href="http://176sfsf.com" target="_blank">亚洲看片一区</a>| <a href="http://y8e8.com" target="_blank">亚洲一区二区免费视频</a>| <a href="http://www-24333.com" target="_blank">久久久久久久久久久久久女国产乱 </a>| <a href="http://yiqipapa8.com" target="_blank">一区二区三区欧美激情</a>| <a href="http://6aaee.com" target="_blank">久久夜色精品国产噜噜av</a>| <a href="http://566805.com" target="_blank">亚洲第一页在线</a>| <a href="http://8x588.com" target="_blank">国产精品你懂的在线欣赏</a>| <a href="http://p5555ww.com" target="_blank">亚洲无线一线二线三线区别av</a>| <a href="http://xxtv123.com" target="_blank">国产精品亚洲精品</a>| <a href="http://251aaa.com" target="_blank">欧美视频一区在线</a>| <a href="http://www134rr.com" target="_blank">久久一区视频</a>| <a href="http://6677ch.com" target="_blank">午夜精品一区二区三区四区 </a>| <a href="http://www62265.com" target="_blank">国产精品超碰97尤物18</a>| <a href="http://by8556.com" target="_blank">亚洲精品欧美日韩</a>| <a href="http://nc04.com" target="_blank">亚洲国产老妈</a>| <a href="http://ccc159.com" target="_blank">亚洲一区在线免费观看</a>| <a href="http://cabenn.com" target="_blank">久久视频这里只有精品</a>| <a href="http://cgnwp.com" target="_blank">国产伦精品一区二区三区免费 </a>| <a href="http://www18818.com" target="_blank">91久久精品视频</a>| <a href="http://shruhan.com" target="_blank">99精品国产热久久91蜜凸</a>| <a href="http://ffff53.com" target="_blank">久久久国产精品一区二区三区</a>| <a href="http://whdzjc.com" target="_blank">免费成人黄色av</a>| <a href="http://erzhuzi.com" target="_blank">亚洲在线成人</a>| <a href="http://btbt7086.com" target="_blank">欧美日韩免费在线视频</a>| <a href="http://hehextv.com" target="_blank">国产日韩综合</a>| <a href="http://0855d.com" target="_blank">久久狠狠亚洲综合</a>| <a href="http://easypufu.com" target="_blank">夜色激情一区二区</a>| <a href="http://7m08.com" target="_blank">久久婷婷综合激情</a>| <a href="http://qiezi2vip.com" target="_blank">国产日韩亚洲欧美综合</a>| <a href="http://aiqianfang.com" target="_blank">亚洲欧美日韩精品久久亚洲区</a>| <a href="http://alex-bruni.com" target="_blank">欧美xart系列在线观看</a>| <a href="http://tom3958.com" target="_blank">欧美xxx在线观看</a>| <a href="http://687989.com" target="_blank">亚洲国产一区二区视频</a>| <a href="http://85181890.com" target="_blank">日韩亚洲一区二区</a>| <a href="http://chaoxibg.com" target="_blank">在线免费不卡视频</a>| <a href="http://b476.com" target="_blank">亚洲综合成人婷婷小说</a>| <a href="http://yeyelu888.com" target="_blank">欧美激情视频一区二区三区在线播放 </a>| <a href="http://136hao.com" target="_blank">欧美亚洲综合久久</a>| <a href="http://cao3e8c8.com" target="_blank">99精品国产高清一区二区</a>| <a href="http://jiujiire.com" target="_blank">免费成人黄色av</a>| <a href="http://2387463.com" target="_blank">99精品免费</a>| <a href="http://sg-lxs.com" target="_blank">欧美日韩亚洲一区二区三区在线</a>| <a href="http://1515t.com" target="_blank">影音先锋日韩有码</a>| <a href="http://lorgou.com" target="_blank">亚洲大胆人体在线</a>| <a href="http://www666se.com" target="_blank">影音国产精品</a>| <a href="http://862323.com" target="_blank">亚洲黄色高清</a>| <a href="http://xxxx48.com" target="_blank">a4yy欧美一区二区三区</a>| <a href="http://4bbbbb.com" target="_blank">亚洲视频导航</a>| <a href="http://4480vv.com" target="_blank">久久成人精品视频</a>| <a href="http://01xxtv.com" target="_blank">亚洲一区二区不卡免费</a>| <a href="http://xw4433.com" target="_blank">国产一区在线观看视频</a>| <a href="http://4r6b.com" target="_blank">日韩亚洲视频在线</a>| <a href="http://66y3.com" target="_blank">99re热这里只有精品免费视频</a>| <a href="http://ttdy20.com" target="_blank">欧美三级第一页</a>| <a href="http://96ykm.com" target="_blank">亚洲欧洲综合</a>| <a href="http://http456446.com" target="_blank">一区二区欧美精品</a>| <a href="http://yeedeli.com" target="_blank">日韩视频一区二区三区在线播放免费观看 </a>| <a href="http://8eb26.com" target="_blank">欧美伦理在线观看</a>| <a href="http://133969.com" target="_blank">伊人激情综合</a>| <a href="http://10669p.com" target="_blank">麻豆精品视频</a>| <a href="http://412342.com" target="_blank">欧美精品aa</a>| <a href="http://340996.com" target="_blank">久久精品中文字幕一区二区三区 </a>| <a href="http://mm778899.com" target="_blank">欧美视频在线播放</a>| <a href="http://wce-expo.com" target="_blank">好吊色欧美一区二区三区四区</a>| <a href="http://017492.com" target="_blank">影音欧美亚洲</a>| <a href="http://ahhyez.com" target="_blank">午夜欧美视频</a>| <a href="http://dailymailnepal.com" target="_blank">久久www成人_看片免费不卡</a>| <a href="http://xprinter3d.com" target="_blank">在线一区视频</a>| <a href="http://www36633.com" target="_blank">亚洲黄色成人久久久</a>| <a href="http://ynjzwh.com" target="_blank">免费看黄裸体一级大秀欧美</a>| <a href="http://choaoxing.com" target="_blank">欧美在线视频导航</a>| <a href="http://hhsj31.com" target="_blank">亚洲免费视频网站</a>| <a href="http://yjdm139.com" target="_blank">国产日韩欧美高清</a>| <a href="http://b476.com" target="_blank">99re在线精品</a>| <a href="http://eee104.com" target="_blank">亚洲综合99</a>| <a href="http://800716.com" target="_blank">亚洲视频综合在线</a>| <a href="http://www-878899.com" target="_blank">99视频精品免费观看</a>| <a href="http://zhouqie.com" target="_blank">欧美精品亚洲精品</a>| <a href="http://305838.com" target="_blank">亚洲精品系列</a>| <a href="http://my8823.com" target="_blank">国产一区二区三区高清</a>| <a href="http://223zzz.com" target="_blank">亚洲国产精品99久久久久久久久</a>| <a href="http://2220004.com" target="_blank">裸体一区二区三区</a>| <a href="http://11867a.com" target="_blank">欧美在线视频免费观看</a>| <a href="http://jiucao8.com" target="_blank">午夜国产欧美理论在线播放</a>| <a href="http://4008305555.com" target="_blank">欧美日本免费</a>| <a href="http://d77dd.com" target="_blank">亚洲破处大片</a>| <a href="http://044925.com" target="_blank">麻豆精品网站</a>| <a href="http://5757ff.com" target="_blank">免费国产一区二区</a>| <a href="http://725443.com" target="_blank">午夜在线观看免费一区</a>| <a href="http://gjjlzs.com" target="_blank">99精品视频一区</a>| <a href="http://erodasy.com" target="_blank">在线欧美影院</a>| <a href="http://avsemm.com" target="_blank">欧美日韩在线播放</a>| <a href="http://ayxchc.com" target="_blank">亚洲一区区二区</a>| <a href="http://www369cf.com" target="_blank">牛牛精品成人免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>