锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲久久久精品,欧美伊人久久大香线蕉综合69 ,国产精品久久午夜夜伦鲁鲁http://www.shnenglu.com/einz/category/9163.htmlzh-cnWed, 08 Jul 2009 03:58:39 GMTWed, 08 Jul 2009 03:58:39 GMT60鍙傛暟浼犲肩殑鐞嗚Вhttp://www.shnenglu.com/einz/articles/76713.htmlEiNEiNMon, 16 Mar 2009 03:32:00 GMThttp://www.shnenglu.com/einz/articles/76713.htmlhttp://www.shnenglu.com/einz/comments/76713.htmlhttp://www.shnenglu.com/einz/articles/76713.html#Feedback0http://www.shnenglu.com/einz/comments/commentRss/76713.htmlhttp://www.shnenglu.com/einz/services/trackbacks/76713.htmlvoid test1(char **p, char *l)
{
    
*= l;
}


void test2(char *p, char *l)
{
    p 
= l;
}


void main()
{
    
char s[] = "0123456789";
    
char *= s;
    
char *= s+3;
    
    test1(
&p, l);
    test2(p, l);
}

娉ㄦ剰浣跨敤**p鏉ヨ揪鍒版洿鏀規晥鏋?br>澶氫竴灞傛寚閽堟寚鍚戯紝鍙互鐢ㄦ潵綆$悊澶栭潰鐨勬寚閽?

EiN 2009-03-16 11:32 鍙戣〃璇勮
]]>
瀛楃緙栫爜鎬葷粨http://www.shnenglu.com/einz/articles/74250.htmlEiNEiNThu, 19 Feb 2009 02:09:00 GMThttp://www.shnenglu.com/einz/articles/74250.htmlhttp://www.shnenglu.com/einz/comments/74250.htmlhttp://www.shnenglu.com/einz/articles/74250.html#Feedback0http://www.shnenglu.com/einz/comments/commentRss/74250.htmlhttp://www.shnenglu.com/einz/services/trackbacks/74250.html

EiN 2009-02-19 10:09 鍙戣〃璇勮
]]>
const tiphttp://www.shnenglu.com/einz/articles/72644.htmlEiNEiNWed, 28 Jan 2009 00:41:00 GMThttp://www.shnenglu.com/einz/articles/72644.htmlhttp://www.shnenglu.com/einz/comments/72644.htmlhttp://www.shnenglu.com/einz/articles/72644.html#Feedback0http://www.shnenglu.com/einz/comments/commentRss/72644.htmlhttp://www.shnenglu.com/einz/services/trackbacks/72644.html濡傛灉鐢ㄨ鍙=&cnt,閭h鎶ラ敊,浣嗘崲涓啓娉?n=cnt灝卞彲浠ヤ簡.



EiN 2009-01-28 08:41 鍙戣〃璇勮
]]>
__cdecl銆乢_stdcall銆乢_pascal銆乢_fastcall錛氬瘎瀛樺櫒灝忓疄楠?/title><link>http://www.shnenglu.com/einz/articles/70553.html</link><dc:creator>EiN</dc:creator><author>EiN</author><pubDate>Sun, 28 Dec 2008 01:59:00 GMT</pubDate><guid>http://www.shnenglu.com/einz/articles/70553.html</guid><wfw:comment>http://www.shnenglu.com/einz/comments/70553.html</wfw:comment><comments>http://www.shnenglu.com/einz/articles/70553.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/einz/comments/commentRss/70553.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/einz/services/trackbacks/70553.html</trackback:ping><description><![CDATA[<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"><br>#pragma hdrstop<br><br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">char</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> one()<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 'a';<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">__int16 two()<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 1;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">__int32 four()<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 2;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">__int64 eight()<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 3;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">#pragma argsused<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> main(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> argc, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">char</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">* argv[])<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">char</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> i = one();<br>    __int16 ii = two();<br>    __int32 iv = four();<br>    __int64 viii = eight();<br>    <br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 0;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//</span><span style="COLOR: #008000"><span style="FONT-FAMILY: Lucida Console">---------------------------------------------------------------------------</span><br></span></div> <br>鑷繁鍐欑殑灝忓疄楠岋紝鍥犱負紿佺劧瀵筧sm浜х敓浜嗗叴瓚c?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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000"><br>mov al, </span><span style="COLOR: #000000">0x61</span><span style="COLOR: #000000"> ; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">a</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"><br><br>mov ax, </span><span style="COLOR: #000000">0x0001</span><span style="COLOR: #000000"> ; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br><br>mov eax, </span><span style="COLOR: #000000">0x00000002</span><span style="COLOR: #000000"> ; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br><br>mov eax, </span><span style="COLOR: #000000">0x00000003</span><span style="COLOR: #000000"> ; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>xor edx, edx</span></div> <br>榪欒鏄庯紝瀵逛簬1涓猙yte鐨勬暟鎹敤鐨勬槸al錛?byte鐢ㄧ殑鏄痑x錛?byte鐢ㄧ殑鏄痚ax錛岃?byte鐢ㄧ殑鏄痚ax鍜宔dx錛屼笖eax瀛樺偍浣庝綅錛宔dx瀛樺偍楂樹綅銆?br><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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">push ebp<br>mov ebp, esp</span></div> <br>榪欏湪榪涘叆姣忎釜鍑芥暟閮戒細鍑虹幇錛屾槸鍥犱負ebp鏄爢鏍堟寚閽堬紝鐢ㄦ潵鍦ㄥ爢鏍堜腑鏌ユ壘鏁版嵁錛岃宔sp姘歌繙鎸囧悜鍫嗘爤澶撮儴銆俶ov緇檈bp鐩稿綋浜庣粰浜嗘浣嶅彿錛宔bp灝辨槸鍋忕Щ銆?br><br>涓嬮潰鍏充簬閭e嚑涓嚱鏁版爣璇?<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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"><br>#pragma hdrstop<br><br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">void</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> __cdecl cde(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> a, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> b)<br>{<br>    a += b;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> __stdcall std(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> a, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> b)<br>{<br>    a = a + b;<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> a;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> __pascal pas(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> a, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> b)<br>{<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">if</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> ( a*b > 30 )<br>        </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> b;<br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">else</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"><br>    {<br>        a += b;<br>        pas(a, b);<br>    }<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">void</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> __fastcall fst(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> a, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> b)<br>{<br>    a += b;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//---------------------------------------------------------------------------<br></span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"><br>#pragma argsused<br></span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> main(</span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">int</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> argc, </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">char</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console">* argv[])<br>{<br>    cde(1, 2);<br>    std(2, 3);<br>    pas(3, 4);<br>    fst(4, 5);<br>    <br>    </span><span style="COLOR: #0000ff; FONT-FAMILY: Lucida Console">return</span><span style="COLOR: #000000; FONT-FAMILY: Lucida Console"> 0;<br>}<br></span><span style="COLOR: #008000; FONT-FAMILY: Lucida Console">//</span><span style="COLOR: #008000"><span style="FONT-FAMILY: Lucida Console">---------------------------------------------------------------------------</span><br></span></div> <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%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">cde:<br>push </span><span style="COLOR: #000000">0x02</span><span style="COLOR: #000000"><br>push </span><span style="COLOR: #000000">0x01</span><span style="COLOR: #000000"><br><br>std:<br>push </span><span style="COLOR: #000000">0x03</span><span style="COLOR: #000000"><br>push </span><span style="COLOR: #000000">0x02</span><span style="COLOR: #000000"><br><br>pas:<br>push </span><span style="COLOR: #000000">0x03</span><span style="COLOR: #000000"><br>push </span><span style="COLOR: #000000">0x04</span><span style="COLOR: #000000"><br><br>fst<br>mov edx, </span><span style="COLOR: #000000">0x00000005</span><span style="COLOR: #000000"><br>mov eax, </span><span style="COLOR: #000000">0x00000004</span><span style="COLOR: #000000"><br><br>a </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> b<br>mov eax, [ebp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">0x0c</span><span style="COLOR: #000000">] ; b<br>add [ebp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">0x08</span><span style="COLOR: #000000">], eax ; b</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">a<br><br>fst<br>mov [ebp</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0x08</span><span style="COLOR: #000000">], edx ; b<br>mov [ebp</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0x04</span><span style="COLOR: #000000">], eax ; a</span></div> <br>榪欒鏄庯細<br>__cdecl鍜宊_stdcall閮芥槸浠庡彸鍚戝乏鍘嬪叆鍙傛暟錛?br>__pascal鏄粠宸﹀悜鍙沖帇鍏ュ弬鏁幫紝<br>__fastcall鏍規湰灝變笉鐢ㄥ唴瀛樻潵瀛樺偍鍙傛暟錛岀洿鎺ュ瓨鍌ㄥ湪瀵勫瓨鍣ㄩ噷闈紝涓嶈繃鏈鍚庨偅涓猣st鍙互鐪嬪嚭__fastcall榪樻槸鍙堝洖鍒板唴瀛樺幓浜嗭紝榪欑偣涓嶆槸寰堟槑鐧姐?br>鎵浠_fastcall鏄蹇殑澶氾紝鍏朵粬鐨勫彉閲忛兘瀛樺偍鍦ㄥ唴瀛樺尯鍩熶笂錛堜笉鍙兘涓鐩村湪瀵勫瓨鍣紝鍥犱負瀵勫瓨鍣ㄦ槸澶у鍏敤鐨勶級錛屽畠浠鎿嶄綔蹇呴』鍏坢ov鍒板瘎瀛樺櫒涓婃潵錛岃宖st灝變笉鐢紝浣嗘槸鍚屾椂錛氬瘎瀛樺櫒鐨勬暟閲忓緢灝戯紝瀹歸噺寰堝皬銆?br><br>榪欓噷鎯沖埌鑷繁涔嬪墠鐨勪竴涓弗閲嶉敊璇紝灝辨槸鍥犱負鍦ㄤ笉鍚岀紪璇戝櫒涓嬪vc鍜宐c瀹冧滑緇欒繖浜涙爣璇嗗嚱鏁扮殑鍚嶇О閮芥槸涓嶄竴鏍風殑錛屾墍浠ュ崈涓囦笉鑳藉彧浠ヤ負瀹冧滑鍙湁鍚嶇О鐨勪笉鍚岋紝榪欐槸涓緢涓ラ噸鐨勯敊璇紝紼嬪簭蹇呯劧浼氭鐨勫緢鎯ㄣ傚叾瀹炲姩鍔ㄦ墜灝辯煡閬撲簡錛実oogle涓婅鐨勯兘鏄煡璇嗙偣錛屾潵鐨勪笉瀹炲湪銆?br><br> <img src ="http://www.shnenglu.com/einz/aggbug/70553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/einz/" target="_blank">EiN</a> 2008-12-28 09:59 <a href="http://www.shnenglu.com/einz/articles/70553.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vft銆乿ptr銆乼hunkhttp://www.shnenglu.com/einz/articles/69851.htmlEiNEiNFri, 19 Dec 2008 10:09:00 GMThttp://www.shnenglu.com/einz/articles/69851.htmlhttp://www.shnenglu.com/einz/comments/69851.htmlhttp://www.shnenglu.com/einz/articles/69851.html#Feedback0http://www.shnenglu.com/einz/comments/commentRss/69851.htmlhttp://www.shnenglu.com/einz/services/trackbacks/69851.html
褰撶被涓湁铏氬嚱鏁扮殑鏃跺欐墠浼氬緩绔媣ft錛岃繖涓〃閲岄潰鎸夌収欏哄簭錛堜粠0寮濮嬶級鍜岀被閲岄潰鐨勮櫄鍑芥暟鍋氬嚭瀵瑰簲銆?br>濡傛灉涓涓被閲岄潰鏈夎櫄鍑芥暟錛堝氨鏄湁vft錛夛紝閭e畠灝辨湁涓獀ptr銆倂ptr鏄竴涓瓨鍦ㄥ湪綾諱腑鐨勪竴涓殣鍚寚閽堬紝榪欎釜鎸囬拡鎸囧悜鐨勬槸vft榪欎釜琛ㄣ?br>褰撹皟鐢ㄧ被涓殑鏌愪釜铏氬嚱鏁扮殑鏃跺欙紝灝遍氳繃榪欎釜鎸囬拡鍘繪壘vft閲岄潰瀵瑰簲鐨勫嚱鏁幫紝鐒跺悗鎷挎潵璋冪敤銆?br>
class Base
{
public:
    FunctionPointer 
*__vptr;
    
virtual void function1() {};
    
virtual void function2() {};
};

class D1: public Base
{
public:
    
virtual void function1() {};
};

class D2: public Base
{
public:
    
virtual void function2() {};
};

榪欓噷鏄劇ず鐨勬妸vptr鏄劇ず鍑烘潵錛屼絾瀹為檯涓婃槸鐪嬩笉瑙佺殑銆?br>

娉ㄦ剰d1鍜宒2鐨剉ptr鏄戶鎵胯嚜base鐨?br>
int main()
{
    D1 cClass;
    Base *pClass = &
cClass;
    pClass->function1();
}

涓婇潰鐨勪唬鐮佷箣鎵浠ュ彲浠ユ墽琛岋紝鏄洜涓猴細pClass鎸囬拡鎸囧悜鐨勪粎浠呮槸cClass涓睘浜嶣ase鐨勯儴鍒嗭紙鍥犱負Base鏄疍1鐨勭埗綾伙級錛屽洜涓簐ptr鍘熸湰鏄湪Base涓殑錛堣櫧鐒剁湅涓嶈錛夛紝鎵浠Class鏄彲浠ヨ皟鐢╲ptr鐨勩傚啀鐢變簬緇ф壙鐨勫叧緋伙紝姝ゆ椂鐨剉ptr澶勪簬D1綾諱腑錛屽畠鎸囧悜鐨勬槸D1鐨剉ft錛屾墍浠Class->funtion1()榪欏彞鍙互鎵ц鎴愬姛銆?br>
璇翠竴涓鏉傜殑鎯呭喌錛?br>
class A
{
public:
    
virtual void a();
};

class B : public A
{
public:
    
virtual void a();
    
virtual void c();
    
virtual void f();
};

class C : public A
{
public:
    
virtual void e();
};

class D : public B, public C
{
public:
    
void a();
    
void g();
}:

榪欓噷灝辨湁鐐歸棶棰橈紝濡傛灉鍗曠函鐨剉ft涓寜鐓у嚱鏁伴『搴忕殑璇濄傚湪D榪欎釜綾諱腑錛屾潵鑷狟鍜屾潵鑷狢榪欎袱涓被涓殑B::c鍑芥暟鍜孋::e鍑芥暟鍦ㄤ粬浠殑綾諱腑鎵鍦ㄧ殑浣嶇疆浠庢枃鏈笂鐪嬮兘鏄浜岀殑浣嶇疆錛圕綾昏繕鏈変釜A涓戶鎵跨殑a鍑芥暟錛夈傞偅涔堝浜嶥鏉ヨ鏈夊悓涓涓綅緗湁涓や釜鍑芥暟錛岃繖鏃秜ft蹇呯劧涓嶈兘姝e父瀹炵幇銆傚湪C++涓叾瀹濪榪欎釜綾繪湁涓や釜vft錛屼竴涓熀浜嶣寤虹珛錛屼竴涓熀浜嶤寤虹珛銆傚綋鐒惰繖縐嶆儏鍐典笅鍙湁鍦ㄥ緇ф壙鏃舵墠鍑虹幇銆?br>
閭d箞鍦ㄥ疄闄呰繍琛屾椂錛岄鍏堣鎶妚ft鐨勫湴鍧錛堜篃灝辨槸vptr鐨勫鹼級鏀懼埌瀵勫瓨鍣ㄩ噷闈紝鐒跺悗瑕佺‘瀹氱敤鐨勬槸鍝釜綾葷殑vft錛堝浜嶥榪欎釜綾繪潵璇達級錛屾帴鐫鍐嶇儲寮曡繖涓嚱鏁拌〃鎵懼埌鍑芥暟錛屾渶鍚庢墠鏍規嵁鍦板潃鎵ц鍑芥暟銆?br>
涔熷氨鍙浜庡緇ф壙榪欑澶嶆潅鐨勬儏鍐典笅錛屾墠鏈変笂闈㈣繖涔堝姝ラ銆傚浜庡崟緇ф壙錛屽彧鐢ㄦ壘鍒拌〃錛屾壘鍒扮儲寮曪紝鎵懼埌鍑芥暟錛岃皟鐢ㄥ嵆鍙侴CC鐨則hunk鍦ㄥ緩绔媣ft鐨勬椂鍊欏氨紜畾浜嗗埌搴曡繖涓嚱鏁版槸鍦ㄥ摢涓璞?br>
load [object_reg+#VFToffset], table_reg
load [table_reg
+#deltaOffset], delta_reg
load [table_reg
+#numOffset], method_reg
add object_reg, delta_reg, object_reg
call method_reg

涓婇潰鐨勬眹緙栧彇鑷竴綃囪鏂囷紝VFToffset灝辨槸vft鐨勫湴鍧鍋忕Щ錛宒eltaOffset灝辨槸澶氱戶鎵夸駭鐢熺殑鍋忕Щ錛堥夊摢涓被錛孊榪樻槸C錛夛紝numOffset灝辨槸鍑芥暟鍋忕Щ銆傜渷鍘葷殑灝辨槸2銆?榪欎袱鏉¤鍙ワ紝thunk鎶婅繖姝ュ仛浜嗐?br>
鍏充簬thunk榪樻槸鏈夌偣闂錛屼笉鏄潪甯告槑鐧姐?br>

EiN 2008-12-19 18:09 鍙戣〃璇勮
]]>
static銆佷綔鐢ㄥ煙銆佽繛鎺ュ睘鎬?/title><link>http://www.shnenglu.com/einz/articles/69847.html</link><dc:creator>EiN</dc:creator><author>EiN</author><pubDate>Fri, 19 Dec 2008 09:03:00 GMT</pubDate><guid>http://www.shnenglu.com/einz/articles/69847.html</guid><wfw:comment>http://www.shnenglu.com/einz/comments/69847.html</wfw:comment><comments>http://www.shnenglu.com/einz/articles/69847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/einz/comments/commentRss/69847.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/einz/services/trackbacks/69847.html</trackback:ping><description><![CDATA[鍏充簬涔嬪墠姣旇緝榪鋒儜鐨剆tatic鍜屼綔鐢ㄥ煙闂鐨勪竴鐐規葷粨銆?br><br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><span style="color: #0000ff; font-family: Lucida Console;"></span><span style="color: #008000; font-family: Lucida Console;"></span><span style="color: #0000ff; font-family: Lucida Console;">static</span><span style="color: #000000; font-family: Lucida Console;"> </span><span style="color: #0000ff; font-family: Lucida Console;">int</span><span style="color: #000000; font-family: Lucida Console;"> n; </span><span style="color: #008000; font-family: Lucida Console;">// file scoped ariable  <br></span><span style="color: #0000ff; font-family: Lucida Console;">float</span><span style="color: #000000; font-family: Lucida Console;"> f; </span><span style="color: #008000; font-family: Lucida Console;">// global variable  <br></span><span style="color: #000000; font-family: Lucida Console;"> <br></span><span style="color: #0000ff; font-family: Lucida Console;">int</span><span style="color: #000000; font-family: Lucida Console;"> main()  <br>{  <br>        </span><span style="color: #0000ff; font-family: Lucida Console;">double</span><span style="color: #000000; font-family: Lucida Console;"> d; </span><span style="color: #008000; font-family: Lucida Console;">// local variable  <br></span><span style="color: #000000;"><span style="font-family: Lucida Console;">}</span>  </span></div> <br>鍙橀噺f鐨勮寖鍥村彲浠ヨ鏄痝lobal涔熷彲浠ヨ瓚呭嚭浜嗘墍鍦ㄦ枃浠躲傛瘡涓彉閲忛兘鏈変竴涓繛鎺ュ睘鎬э紝鐢ㄤ簬鍦ㄨ繛鎺ユ椂鍒ゆ柇鍏朵粬鏂囦歡鏄惁鏈夋潈鍒╂寚鍚戣繖涓彉閲忋傝繖閲岀殑f澹版槑錛宑++榛樿緇欏畠浜嗕竴涓繛鎺ュ睘鎬э細extern錛屼篃灝辨槸璇村湪鍏朵粬鏂囦歡涓紝鍙互浣跨敤榪欎釜鍙橀噺錛屽綋鐒跺墠鎻愭槸浣犲寘鍚簡姝ゆ枃浠訛紝鎴栬呭湪涓涓伐紼嬮噷闈紙鍥犱負瀹冩槸榪炴帴灞炴э級銆傚浜庡彉閲弉錛屽墠闈㈢殑static瀵艱嚧榪欎釜鍙橀噺鐨勮繛鎺ュ睘鎬т負錛氭鏂囦歡錛屽氨鏄澶栭儴鏂囦歡鏃犳硶浣跨敤瀹冦?br><br> static涔嬫墍浠ュ紩璧鋒販娣嗭紝鏄洜涓轟竴寮濮嬪鐨勬椂鍊欙紝瀹冪殑搴旂敤鍦ㄤ簬鎶婁笂闈㈣繖涓猟錛岃繖涓眬閮ㄥ彉閲忓彉鐨勫浐瀹氥傝鍒皊tatic蹇呯劧鏈変釜渚嬪瓙錛屾槸鍦ㄥ嚱鏁頒腑鏈変釜灞閮ㄥ彉閲忥紝鐒跺悗澹版槑涓簊tatic錛屾帴鐫鑷錛屼箣鍚庣濂囩殑鍙戠幇鍙橀噺灞呯劧娌℃湁鑷姩閲婃斁銆傝繖鍏跺疄榪樻槸涓眬閮ㄥ彉閲忥紝鍑轟簡鍑芥暟鏄病娉曚嬌鐢ㄧ殑銆?br><br>瀵逛簬extern錛屽父鐢ㄧ殑鍋氭硶榪樻湁錛?br> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%; font-family: Lucida Console;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">extern</span><span style="color: #000000;"> int array[];</span></div> 榪欐牱鍦ㄥご鏂囦歡閲岄潰澹版槑涓涓暟緇勭被鍨嬶紝鐒跺悗鍦╟pp涓畾涔夊畠銆?br><br> <img src ="http://www.shnenglu.com/einz/aggbug/69847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/einz/" target="_blank">EiN</a> 2008-12-19 17:03 <a href="http://www.shnenglu.com/einz/articles/69847.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.fozhun.cn" target="_blank">久久亚洲精品中文字幕三区</a>| <a href="http://www.shopzoom.cn" target="_blank">狠狠色丁香久久婷婷综合</a>| <a href="http://www.cczone.cn" target="_blank">亚洲国产精品久久久久久</a>| <a href="http://www.2cafe.cn" target="_blank">九九久久精品国产</a>| <a href="http://www.s6893.cn" target="_blank">久久婷婷人人澡人人爽人人爱</a>| <a href="http://www.zqyipin.cn" target="_blank">久久婷婷五月综合成人D啪</a>| <a href="http://www.meisj88.cn" target="_blank">久久99精品国产99久久</a>| <a href="http://www.joyq.com.cn" target="_blank">精品无码久久久久久久久久</a>| <a href="http://www.rc51.cn" target="_blank">亚洲综合精品香蕉久久网</a>| <a href="http://www.whruide.cn" target="_blank">久久99国产精品99久久</a>| <a href="http://www.chengruo.cn" target="_blank">久久久久久亚洲精品影院</a>| <a href="http://www.paysearch.cn" target="_blank">精品国产一区二区三区久久</a>| <a href="http://www.usgold.cn" target="_blank">中文精品久久久久人妻</a>| <a href="http://www.sccdseo.cn" target="_blank">久久综合综合久久97色</a>| <a href="http://www.tthzk.cn" target="_blank">中文字幕日本人妻久久久免费 </a>| <a href="http://www.elzx.com.cn" target="_blank">久久久久久伊人高潮影院</a>| <a href="http://www.cad77.cn" target="_blank">99久久99久久精品免费看蜜桃</a>| <a href="http://www.xhcedu.cn" target="_blank">久久综合久久性久99毛片</a>| <a href="http://www.08fq.cn" target="_blank">99国产精品久久久久久久成人热</a>| <a href="http://www.cfgcurn.cn" target="_blank">久久无码精品一区二区三区</a>| <a href="http://www.ppmm163.cn" target="_blank">精品无码久久久久久尤物</a>| <a href="http://www.nanghang.cn" target="_blank">久久久久亚洲av综合波多野结衣</a>| <a href="http://www.yaojikeji.cn" target="_blank">国产精品成人99久久久久</a>| <a href="http://www.chengrenshop.com.cn" target="_blank">久久天天躁狠狠躁夜夜2020一</a>| <a href="http://www.5656936.cn" target="_blank">久久国产精品无码网站</a>| <a href="http://www.pygsbdg.cn" target="_blank">AV无码久久久久不卡网站下载 </a>| <a href="http://www.shgdb.cn" target="_blank">久久精品人人做人人妻人人玩</a>| <a href="http://www.z42195.cn" target="_blank">国产女人aaa级久久久级</a>| <a href="http://www.xuzhou86.cn" target="_blank">国产精品美女久久久久久2018</a>| <a href="http://www.bettertrade.cn" target="_blank">久久久久久久波多野结衣高潮</a>| <a href="http://www.plkqry429.cn" target="_blank">久久久WWW免费人成精品</a>| <a href="http://www.daleiba.cn" target="_blank">四虎国产精品免费久久5151</a>| <a href="http://www.xyjsj88.com.cn" target="_blank">2021久久精品国产99国产精品</a>| <a href="http://www.goldenshipping.cn" target="_blank">99久久夜色精品国产网站</a>| <a href="http://www.kftfk.cn" target="_blank">久久99国产精品久久99小说</a>| <a href="http://www.spiralstar.com.cn" target="_blank">久久精品成人免费观看97</a>| <a href="http://www.philadelphiausa.cn" target="_blank">久久国产精品99精品国产987</a>| <a href="http://www.ndali.cn" target="_blank">久久久久国产精品</a>| <a href="http://www.qcqxzx.cn" target="_blank">中文字幕亚洲综合久久2</a>| <a href="http://www.forexpo.cn" target="_blank">国产亚州精品女人久久久久久 </a>| <a href="http://www.tabuluo.com.cn" target="_blank">久久er国产精品免费观看8</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>