锘??xml version="1.0" encoding="utf-8" standalone="yes"?>午夜国产欧美理论在线播放,欧美一级久久久,久久综合色88http://www.shnenglu.com/ivy-jie/category/10520.htmlprogress ...zh-cnSun, 28 Jun 2009 07:55:02 GMTSun, 28 Jun 2009 07:55:02 GMT60鏈夋剰鎬濈殑鐭╅樀杈撳嚭棰?/title><link>http://www.shnenglu.com/ivy-jie/articles/88687.html</link><dc:creator>ivy-jie</dc:creator><author>ivy-jie</author><pubDate>Sun, 28 Jun 2009 04:04:00 GMT</pubDate><guid>http://www.shnenglu.com/ivy-jie/articles/88687.html</guid><wfw:comment>http://www.shnenglu.com/ivy-jie/comments/88687.html</wfw:comment><comments>http://www.shnenglu.com/ivy-jie/articles/88687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivy-jie/comments/commentRss/88687.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivy-jie/services/trackbacks/88687.html</trackback:ping><description><![CDATA[<p>棰樼洰瑕佹眰:<br>鐢–緙栧啓紼嬪簭騫舵敞閲?br>N*N鐭╅樀杈撳嚭<br>N=3鏃惰緭鍑?br>1 2 3<br>  8 9 4<br>  7 6 5<br>N錛?鏃惰緭鍑?br>   1  2  3   4 <br>   12 13 14  5<br>   11 16 15  6<br>   10  9  8  7</p> <p>緙栧啓褰揘鏃剁殑杈撳嚭<br><br>浠g爜:<br>#include <stdio.h><br>#include <stdlib.h><br>#include <string.h></p> <p>enum {<br>        MASK_UP                = 1,<br>        MASK_DOWN        = 2,<br>        MASK_LEFT        = 4,<br>        MASK_RIGHT        = 8,<br>        <br>        TURN_NONE        = 0,<br>        TURN_UP                = 1,<br>        TURN_DOWN        = 2,<br>        TURN_LEFT        = 3,<br>        TURN_RIGHT        = 4,<br>};</p> <p>int directs[5][2] = {<br>        {0, 0},                // 0:TURN_NONE<br>        {-1, 0},        // 1:TURN_UP<br>        {1, 0},                // 2:TURN_DOWN<br>        {0, -1},        // 3:TURN_LEFT<br>        {0, 1},                // 4:TURN_RIGHT<br>};</p> <p>int rules[16] = {<br>        TURN_NONE,        // 0:none<br>        TURN_UP,        // 1:up<br>        TURN_DOWN,        // 2:down<br>        TURN_NONE,        // 3:invalid<br>        TURN_LEFT,        // 4:left<br>        TURN_LEFT,        // 5:left and up<br>        TURN_DOWN,        // 6:left and down<br>        TURN_NONE,        // 7:invalid<br>        TURN_RIGHT,        // 8:right<br>        TURN_UP,        // 9:right and up<br>        TURN_RIGHT,        // 10:right and down<br>        TURN_NONE,        // 11-15:invalid<br>};<br>int next_pos(int *matrix, int n, int i, int j, int *nexti, int *nextj)<br>{<br>        if (i == -1 || j == -1)<br>        {<br>                *nexti = 0;<br>                *nextj = 0;<br>                return 1;<br>        }<br>        int mask = 0;<br>        if (i - 1 >= 0 && matrix[(i - 1) * n + j] == 0)                // up ok<br>                mask |= MASK_UP;<br>        if (i + 1 <= n - 1 && matrix[(i + 1) * n + j] == 0)        // down ok<br>                mask |= MASK_DOWN;<br>        if (j - 1 >= 0 && matrix[i * n + (j - 1)] == 0)                // left ok<br>                mask |= MASK_LEFT;<br>        if (j + 1 <= n - 1 && matrix[i * n + (j + 1)] == 0)        // right ok<br>                mask |= MASK_RIGHT;<br>        <br>        int rule = rules[mask];<br>        int *direct = directs[rule];<br>        if (direct[0] == 0 && direct[1] == 0)<br>                return 0;<br>        *nexti = i + direct[0];<br>        *nextj = j + direct[1];<br>        return 1;<br>}</p> <p>int main(int argc, char *argv[])<br>{<br>        if (argc != 2)<br>                return -1;<br>        int n = atoi(argv[1]);<br>        if (n <= 0)<br>                return -1;<br>        <br>        int *matrix = (int*)malloc(n * n * sizeof(int));<br>        memset(matrix, 0, n * n * sizeof(int));</p> <p>        int i = -1;<br>        int j = -1;<br>        int value = 1;<br>        while (next_pos(matrix, n, i, j, &i, &j) != 0)<br>        {<br>                matrix[i * n + j] = value++;<br>        }</p> <p>        for (i = 0; i < n; i++)<br>        {<br>                for (j = 0; j < n; j++)<br>                {<br>                        printf("%d", matrix[i * n + j]);<br>                        if (j != n - 1)<br>                                printf("\t");<br>                }<br>                printf("\n");<br>        }<br>        <br>        free(matrix);<br>        return 0;<br>}</p> <img src ="http://www.shnenglu.com/ivy-jie/aggbug/88687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivy-jie/" target="_blank">ivy-jie</a> 2009-06-28 12:04 <a href="http://www.shnenglu.com/ivy-jie/articles/88687.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>铏氱戶鎵夸笌铏氬熀綾葷殑鏈川http://www.shnenglu.com/ivy-jie/articles/87104.htmlivy-jieivy-jieMon, 08 Jun 2009 14:34:00 GMThttp://www.shnenglu.com/ivy-jie/articles/87104.htmlhttp://www.shnenglu.com/ivy-jie/comments/87104.htmlhttp://www.shnenglu.com/ivy-jie/articles/87104.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/87104.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/87104.html铏氱戶鎵夸笌铏氬熀綾葷殑鏈川
    铏氱戶鎵垮拰铏氬熀綾葷殑瀹氫箟鏄潪甯哥殑綆鍗曠殑錛屽悓鏃朵篃鏄潪甯稿鏄撳垽鏂竴涓戶鎵挎槸鍚︽槸铏氱戶鎵?br>鐨勶紝铏界劧榪欎袱涓蹇電殑瀹氫箟鏄潪甯哥殑綆鍗曟槑紜殑錛屼絾鏄湪C++璇█涓櫄緇ф壙浣滀負(fù)涓涓瘮杈冪敓
鍍?nèi)潥勪絾鏄張鏄l濆蹇呰鐨勭粍鎴愰儴浠借屽瓨鍦ㄧ潃錛屽茍涓斿叾琛屼負(fù)鍜屾ā鍨嬪潎琛ㄧ幇鍑哄拰涓鑸殑緇ф壙浣撶郴
涔嬮棿鐨勫法澶х殑宸紓錛堝寘鎷闂ц兘涓婄殑宸紓錛夛紝鐜板湪鎴戜滑灝辨潵褰誨簳鐨勪粠璇█銆佹ā鍨嬨佹ц兘鍜?br>搴旂敤絳夊涓柟闈㈠铏氱戶鎵垮拰铏氬熀綾昏繘琛岀爺絀躲?br>    棣栧厛榪樻槸鍏堢粰鍑?guó)櫃毦lф壙鍜岃櫄鍩虹被鐨勫畾涔夈?br>    铏氱戶鎵匡細(xì)鍦ㄧ戶鎵垮畾涔変腑鍖呭惈浜?jiǎn)virtual鍏抽敭瀛楃殑緇ф壙鍏崇郴錛?br>    铏氬熀綾伙細(xì)鍦ㄨ櫄緇ф壙浣撶郴涓殑閫氳繃virtual緇ф壙鑰屾潵鐨勫熀綾伙紝闇瑕佹敞鎰忕殑鏄細(xì)
            struct CSubClass : public virtual CBase {}; 鍏朵腑CBase縐頒箣涓篊SubClass
            鐨勮櫄鍩虹被錛岃屼笉鏄CBase灝辨槸涓櫄鍩虹被錛屽洜涓篊Base榪樺彲浠ヤ笉涓嶆槸铏氱戶鎵夸綋緋?br>            涓殑鍩虹被銆?br>    鏈変簡(jiǎn)涓婇潰鐨勫畾涔夊悗錛屽氨鍙互寮濮嬭櫄緇ф壙鍜岃櫄鍩虹被鐨勬湰璐ㄧ爺絀朵簡(jiǎn)錛屼笅闈㈡寜鐓ц娉曘佽涔夈?br>妯″瀷銆佹ц兘鍜屽簲鐢ㄤ簲涓柟闈㈣繘琛屽叏闈㈢殑鎻忚堪銆?br>
    1. 璇硶
       璇硶鏈夎璦鐨勬湰韜殑瀹氫箟鎵鍐沖畾錛屾諱綋涓婃潵璇撮潪甯哥殑綆鍗曪紝濡備笅錛?br>           struct CSubClass : public virtual CBaseClass {};
       鍏朵腑鍙互閲囩敤public銆乸rotected銆乸rivate涓夌涓嶅悓鐨勭戶鎵垮叧閿瓧榪涜淇グ錛屽彧瑕?br>       紜繚鍖呭惈virtual灝卞彲浠ヤ簡(jiǎn)錛岃繖鏍蜂竴鏉ュ氨褰㈡垚浜?jiǎn)铏毦lф壙浣撶郴錛屽悓鏃禖BaseClass灝辨垚涓?br>       浜?jiǎn)CSubClass鐨勮櫄鍩虹被浜?jiǎn)銆?br>       鍏跺疄騫舵病鏈夐偅涔堢殑綆鍗曪紝濡傛灉鍑虹幇铏氱戶鎵夸綋緋葷殑榪涗竴姝ョ戶鎵夸細(xì)鍑虹幇浠涔堟牱鐨勭姸鍐靛憿錛?br>       濡備笅鎵紺猴細(xì)
            /*
             * 甯︽湁鏁版嵁鎴愬憳鐨勫熀綾?br>             */
            struct CBaseClass1
            {
                CBaseClass1( size_t i ) : m_val( i ) {}
            
                size_t m_val;
            };
            /*
             * 铏氭嫙緇ф壙浣撶郴
             */
            struct CSubClassV1 : public virtual CBaseClass1
            {
                CSubClassV1( size_t i ) : CBaseClass1( i ) {}
            };           
            struct CSubClassV2 : public virtual CBaseClass1
            {
                CSubClassV2( size_t i ) : CBaseClass1( i ) {}
            };           
            struct CDiamondClass1 : public CSubClassV1, public CSubClassV2
            {
                CDiamondClass1( size_t i ) : CBaseClass1( i ), CSubClassV1( i ), CSubClassV2( i ) {}
            };           
            struct CDiamondSubClass1 : public CDiamondClass1
            {
                CDiamondSubClass1( size_t i ) : CBaseClass1( i ), CDiamondClass1( i ) {}
            };
       娉ㄦ剰涓婇潰浠g爜涓殑CDiamondClass1鍜孋DiamondSubClass1涓や釜綾葷殑鏋勯犲嚱鏁板垵濮嬪寲鍒?br>       琛ㄤ腑鐨勫唴瀹廣傚彲浠ュ彂鐜板叾涓潎鍖呭惈浜?jiǎn)铏氬熀绫籆BaseClass1鐨勫垵濮嬪寲宸ヤ綔錛屽鏋滄病鏈夎繖
       涓垵濮嬪寲璇彞灝變細(xì)瀵艱嚧緙栬瘧鏃墮敊璇紝涓轟粈涔堜細(xì)榪欐牱鍛紵涓鑸儏鍐典笅涓嶆槸鍙鍦?br>       CSubClassV1鍜孋SubClassV2涓寘鍚垵濮嬪寲灝卞彲浠ヤ簡(jiǎn)涔堬紵瑕佽В閲婅闂蹇呴』瑕佹槑鐧借櫄
       緇ф壙鐨勮涔夌壒寰侊紝鎵浠ュ弬鐪嬩笅闈㈣涔夐儴鍒嗙殑瑙i噴銆?br>      
    2. 璇箟
          鍦–++涓櫄鍑芥暟蹇呴』瑕侀氳繃涓縐嶉棿鎺ョ殑榪愯鏃訛紙鑰屼笉鏄紪璇戞椂錛夋満鍒舵墠鑳藉嬋媧伙紙
      璋冪敤錛夌殑鍑芥暟錛岃岃櫄緇ф壙涔熸槸蹇呴』鍦ㄨ繍琛屾椂鎵嶈兘澶熻繘琛屽畾浣嶈闂殑涓縐嶄綋鍒躲傚瓨鍦紝
      浣嗛棿鎺ャ傚叾涓叧閿氨鍦ㄤ簬瀛樺湪銆侀棿鎺ュ拰鍏變韓榪欎笁縐嶇壒寰併?br>       瀵逛簬铏氬嚱鏁拌岃█錛岃繖涓変釜鐗瑰緛鏄緢濂界悊瑙g殑錛岄棿鎺ユц〃鏄庝簡(jiǎn)浠栧繀欏誨湪榪愯鏃舵牴鎹疄闄?br>       鐨勫璞℃潵瀹屾垚鍑芥暟瀵誨潃錛屽叡浜ц〃璞″湪鍩虹被浼?xì)鍏变韩琚瓙绫婚噸铦插悗鐨勮櫄鍑芥晭图屽叾瀹炴寚鍚?br>       鐩稿悓鐨勫嚱鏁板叆鍙c?br>       瀵逛簬铏氱戶鎵胯岃█錛岃繖涓変釜鐗瑰緛濡備綍鐞嗚В鍛紵瀛樺湪鍗寵〃紺鴻櫄緇ф壙浣撶郴鍜岃櫄鍩虹被紜疄瀛樺湪錛?br>       闂存帴鎬ц〃鏄庝簡(jiǎn)鍦ㄨ闂櫄鍩虹被鐨勬垚鍛樻椂鍚屾牱涔熷繀欏婚氳繃鏌愮闂存帴鏈哄埗鏉ュ畬鎴愶紙涓嬮潰妯″瀷
       涓細(xì)璁插埌錛夛紝鍏變韓鎬ц〃璞″湪铏氬熀綾諱細(xì)鍦ㄨ櫄緇ф壙浣撶郴涓鍏變韓錛岃屼笉浼?xì)鍑虹幇澶氫唤鎷疯礉銆?br>       閭g幇鍦ㄥ彲浠ヨВ閲婅娉曞皬鑺備腑鐣欎笅鏉ョ殑閭d釜闂?shù)簡(jiǎn)锛?#8220;涓轟粈涔堜竴鏃﹀嚭鐜頒簡(jiǎn)铏氬熀綾伙紝灝卞繀
       欏誨湪姣忎竴涓戶鎵跨被涓兘蹇呴』鍖呭惈铏氬熀綾葷殑鍒濆鍖栬鍙?#8221;銆傜敱涓婇潰鐨勫垎鏋愬彲浠ョ煡閬擄紝
       铏氬熀綾繪槸琚叡浜殑錛屼篃灝辨槸鍦ㄧ戶鎵夸綋緋諱腑鏃犺琚戶鎵垮灝戞錛屽璞″唴瀛樻ā鍨嬩腑鍧囧彧浼?br>       鍑虹幇涓涓櫄鍩虹被鐨勫瓙瀵硅薄錛堣繖鍜屽緇ф壙鏄畬鍏ㄤ笉鍚岀殑錛夛紝榪欐牱涓鏉ユ棦鐒舵槸鍏變韓鐨勯偅涔?br>       姣忎竴涓瓙綾婚兘涓嶄細(xì)鐙崰錛屼絾鏄昏繕鏄繀欏昏鏈変竴涓被鏉ュ畬鎴愬熀綾葷殑鍒濆鍖栬繃紼嬶紙鍥犱負(fù)
       鎵鏈夌殑瀵硅薄閮藉繀欏昏鍒濆鍖栵紝鍝曟槸榛樿鐨勶級(jí)錛屽悓鏃惰繕?shù)笉鑳藉閲嶅杩涜鍒濆鍖栧Q岄偅鍒?br>       搴曡皝搴旇璐熻矗瀹屾垚鍒濆鍖栧憿錛烠++鏍囧噯涓紙涔熸槸寰堣嚜鐒剁殑錛夐夋嫨鍦ㄦ瘡涓嬈$戶鎵垮瓙綾諱腑
       閮藉繀欏諱功鍐欏垵濮嬪寲璇彞錛堝洜涓烘瘡涓嬈$戶鎵垮瓙綾誨彲鑳介兘浼?xì)鐢ㄦ潵瀹氫箟瀵硅薄锛?jí)錛岃屽湪鏈涓嬪眰
       緇ф壙瀛愮被涓疄闄呮墽琛屽垵濮嬪寲榪囩▼銆傛墍浠ヤ笂闈㈠湪姣忎竴涓戶鎵跨被涓兘瑕佷功鍐欏垵濮嬪寲璇彞錛?br>       浣嗘槸鍦ㄥ垱寤哄璞℃椂錛岃屼粎浠呬細(xì)鍦ㄥ垱寤哄璞$敤鐨勭被鏋勯犲嚱鏁頒腑瀹為檯鐨勬墽琛屽垵濮嬪寲璇彞錛?br>       鍏朵粬鐨勫垵濮嬪寲璇彞閮戒細(xì)琚帇鍒朵笉璋冪敤銆?br>      
    3. 妯″瀷
       涓轟簡(jiǎn)瀹炵幇涓婇潰鎵璇寸殑涓夌璇箟鍚箟錛屽湪鑰冭檻瀵硅薄鐨勫疄鐜版ā鍨嬶紙涔熷氨鏄唴瀛樻ā鍨嬶級(jí)鏃跺氨
       寰堣嚜鐒朵簡(jiǎn)銆傚湪C++涓璞″疄闄呬笂灝辨槸涓涓繛緇殑鍦板潃絀洪棿鐨勮涔変唬琛紝鎴戜滑鏉ュ垎鏋愯櫄
       緇ф壙涓嬬殑鍐呭瓨妯″瀷銆?br>       3.1. 瀛樺湪
           涔熷氨鏄鍦ㄥ璞″唴瀛樹(shù)腑蹇呴』瑕佸寘鍚櫄鍩虹被鐨勫畬鏁村瓙瀵硅薄錛屼互渚胯兘澶熷畬鎴愰氳繃鍦板潃
           瀹屾垚瀵硅薄鐨勬爣璇嗐傞偅涔堣嚦浜庤櫄鍩虹被鐨勫瓙瀵硅薄浼?xì)瀛樻攽譁ㄥ璞$殑閭d釜浣嵕|紙澶淬佷腑闂淬?br>           灝鵑儴錛夊垯鐢卞悇涓紪璇戝櫒閫夋嫨錛屾病鏈夊樊鍒傦紙鍦╒C8涓棤璁鴻櫄鍩虹被琚0鏄庡湪浠涔堜綅緗紝
           铏氬熀綾葷殑瀛愬璞¢兘浼?xì)琚攧〗湪瀵硅薄鍐呭瓨鐨劄N儴錛?br>       3.2. 闂存帴
           闂存帴鎬ц〃鏄庝簡(jiǎn)鍦ㄧ洿鎺ヨ櫄鍩烘壙瀛愮被涓竴瀹氬寘鍚簡(jiǎn)鏌愮鎸囬拡錛堝亸縐繪垨琛ㄦ牸錛夋潵瀹屾垚閫?br>           榪囧瓙綾昏闂櫄鍩虹被瀛愬璞★紙鎴栨垚鍛橈級(jí)鐨勯棿鎺ユ墜孌碉紙鍥犱負(fù)铏氬熀綾誨瓙瀵硅薄鏄叡浜殑錛?br>           娌℃湁紜畾鍏崇郴錛夛紝鑷充簬閲囩敤浣曠鎵嬫鐢辯紪璇戝櫒閫夋嫨銆傦紙鍦╒C8涓湪瀛愮被涓斁緗簡(jiǎn)
           涓涓櫄鍩虹被鎸囬拡vbc錛岃鎸囬拡鎸囧悜铏氬嚱鏁拌〃涓殑涓涓猻lot錛岃slot涓瓨鏀懼垯铏氬熀
           綾誨瓙瀵硅薄鐨勫亸縐婚噺鐨勮礋鍊鹼紝瀹為檯涓婂氨鏄釜浠ヨˉ鐮佽〃紺虹殑int綾誨瀷鐨勫鹼紝鍦ㄨ綆楄櫄
           鍩虹被瀛愬璞¢鍦板潃鏃訛紝闇瑕佸皢璇ュ亸縐婚噺鍙栫粷瀵瑰肩浉鍔狅紝榪欎釜涓昏鏄負(fù)浜?jiǎn)鍜岃櫄琛?br>           涓彧鑳藉瓨鏀捐櫄鍑芥暟鍦板潃榪欎竴瑕佹眰鐩稿尯鍒紝鍥犱負(fù)鍦板潃鏄師鐮佽〃紺虹殑鏃犵鍙穒nt綾誨瀷
           鐨勫鹼級(jí)
       3.3. 鍏變韓
           鍏變韓琛ㄦ槑浜?jiǎn)鍦ㄥ璞$殑鍐呭瓨绌洪棿涓粎浠呰兘澶熷寘鍚竴浠借櫄鍩虹被鐨勫瓙瀵硅薄錛屽茍涓旈氳繃
           鏌愮闂存帴鐨勬満鍒舵潵瀹屾垚鍏變韓鐨勫紩鐢ㄥ叧緋匯傚湪浠嬬粛瀹屾暣涓唴瀹瑰悗浼?xì)闄勪笂娴嬭瘯浠g爜锛?br>           浣撶幇榪欎簺鍐呭銆?br>    4. 鎬ц兘
       鐢變簬鏈変簡(jiǎn)闂存帴鎬у拰鍏變韓鎬т袱涓壒寰侊紝鎵浠ュ喅瀹氫簡(jiǎn)铏氱戶鎵夸綋緋諱笅鐨勫璞″湪璁塊棶鏃跺繀鐒?br>       浼?xì)鍦ㄦ棄櫁村拰绌洪棿涓婁笌涓鑸儏鍐墊湁杈冨ぇ涓嶅悓銆?br>       4.1. 鏃墮棿
           鍦ㄩ氳繃緇ф壙綾誨璞¤闂櫄鍩虹被瀵硅薄涓殑鎴愬憳錛堝寘鎷暟鎹垚鍛樺拰鍑芥暟鎴愬憳錛夋椂錛岄兘
           蹇呴』閫氳繃鏌愮闂存帴寮曠敤鏉ュ畬鎴愶紝榪欐牱浼?xì)澧炲姞寮曠敤瀵诲潃鏃墮棿錛堝氨鍜岃櫄鍑芥暟涓鏍鳳級(jí)錛?br>           鍏跺疄灝辨槸璋冩暣this鎸囬拡浠ユ寚鍚戣櫄鍩虹被瀵硅薄錛屽彧涓嶈繃榪欎釜璋冩暣鏄繍琛屾椂闂存帴瀹屾垚鐨勩?br>           錛堝湪VC8涓氳繃鎵撳紑姹囩紪杈撳嚭錛屽彲浠ユ煡鐪?.cod鏂囦歡涓殑鍐呭錛屽湪璁塊棶铏氬熀綾誨璞?br>           鎴愬憳鏃朵細(xì)褰㈡垚涓夋潯mov闂存帴瀵誨潃璇彞錛岃屽湪璁塊棶涓鑸戶鎵跨被瀵硅薄鏃朵粎浠呭彧鏈変竴鏉ov
           甯擱噺鐩存帴瀵誨潃璇彞錛?br>       4.2. 絀洪棿
           鐢變簬鍏變韓鎵浠ヤ笉鍚屽湪瀵硅薄鍐呭瓨?shù)腑淇濆瓨澶氫唤铏氬熀绫诲瓙瀵硅薄鐨勬嫰偞濆Q岃繖鏍瘋緝涔嬪緇ф壙
           鑺傜渷絀洪棿銆?br>    5. 搴旂敤
       璋堜簡(jiǎn)閭d箞澶氳璦鐗規(guī)у拰鍐呭錛岄偅涔堝湪浠涔堟儏鍐典笅闇瑕佷嬌鐢ㄨ櫄緇ф壙錛岃屼竴鑸簲璇ュ浣曚嬌
       鐢ㄥ憿錛?br>       榪欎釜闂鍏跺疄寰堥毦鏈夌瓟妗堬紝涓鑸儏鍐典笅濡傛灉浣犵‘鎬у嚭鐜板緇ф壙娌℃湁蹇呰錛屽繀欏昏鍏變韓
       鍩虹被瀛愬璞$殑鏃跺欏彲浠ヨ冭檻閲囩敤铏氱戶鎵垮叧緋伙紙C++鏍囧噯ios浣撶郴灝辨槸榪欐牱鐨勶級(jí)銆傜敱浜庢瘡
       涓涓戶鎵跨被閮藉繀欏誨寘鍚垵濮嬪寲璇彞鑰屽張浠呬粎鍙湪鏈搴曞眰瀛愮被涓皟鐢紝榪欐牱鍙兘灝變細(xì)浣?br>       寰楁煇浜涗笂灞傚瓙綾誨緱鍒扮殑铏氬熀綾誨瓙瀵硅薄鐨勭姸鎬佷笉鏄嚜宸辨墍鏈熸湜鐨勶紙鍥犱負(fù)鑷繁鐨勫垵濮嬪寲璇?br>       鍙ヨ鍘嬪埗浜?jiǎn)锛?jí)錛屾墍浠?span style="COLOR: red">涓鑸緩璁笉瑕佸湪铏氬熀綾諱腑鍖呭惈浠諱綍鏁版嵁鎴愬憳錛堜笉瑕佹湁鐘舵侊級(jí)錛屽彧
       鍙互浣滀負(fù)鎺ュ彛綾繪潵鎻愪緵銆?br>               鍋囧畾閫氳繃澶氫釜媧劇敓璺緞緇ф壙鍚嶄負(fù)X鐨勬垚鍛橈紝鏈変笅闈笁縐嶅彲鑳芥э細(xì)

            1錛夊鏋滃湪姣忎釜璺緞涓璛琛ㄧず鍚屼竴铏氬熀綾繪垚鍛橈紝鍒欐病鏈変簩涔夋э紝鍥犱負(fù)鍏變韓璇ユ垚鍛樼殑鍗曚釜瀹炰緥錛?br>            2錛夊鏋滃湪鏌愪釜璺緞涓璛鏄櫄鍩虹被鐨勬垚鍛橈紝鑰屽湪鍙︿竴璺緞涓璛鏄悗浠f淳鐢熺被鐨勬垚鍛橈紝涔熸病鏈変簩涔夋р斺旂壒瀹氭淳鐢熺被瀹炰緥鐨勪紭鍏堢駭楂樹(shù)簬鍏變韓铏氬熀綾誨疄渚嬨?nbsp;
            3錛夊鏋滄部姣忎釜緇ф壙璺緞X琛ㄧず鍚庝唬媧劇敓綾葷殑涓嶅悓鎴愬憳錛屽垯璇ユ垚鍛樼殑鐩存帴璁塊棶鏄簩涔夋х殑銆?br>




 
 


闄勫綍錛氭祴璇曚唬鐮?br>#include <ctime>
#include <iostream>

/*
 * 甯︽湁鏁版嵁鎴愬憳鐨勫熀綾?br> */
struct CBaseClass1
{
    CBaseClass1( size_t i ) : m_val( i ) {}

    size_t m_val;
};
/*
 * 铏氭嫙緇ф壙浣撶郴
 */
struct CSubClassV1 : public virtual CBaseClass1
{
    CSubClassV1( size_t i ) : CBaseClass1( i ) {}
};

struct CSubClassV2 : public virtual CBaseClass1
{
    CSubClassV2( size_t i ) : CBaseClass1( i ) {}
};

struct CDiamondClass1 : public CSubClassV1, public CSubClassV2
{
    CDiamondClass1( size_t i ) : CBaseClass1( i ), CSubClassV1( i ), CSubClassV2( i ) {}
};

struct CDiamondSubClass1 : public CDiamondClass1
{
    CDiamondSubClass1( size_t i ) : CBaseClass1( i ), CDiamondClass1( i ) {}
};
/*
 * 姝e父緇ф壙浣撶郴
 */
struct CSubClassN1 : public CBaseClass1
{
    CSubClassN1( size_t i ) : CBaseClass1( i ) {}
};
struct CSubClassN2 : public CBaseClass1
{
    CSubClassN2( size_t i ) : CBaseClass1( i ) {}
};
struct CMultiClass1 : public CSubClassN1, public CSubClassN2
{
    CMultiClass1( size_t i ) : CSubClassN1( i ), CSubClassN2( i ) {}
};
struct CMultiSubClass1 : public CMultiClass1
{
    CMultiSubClass1( size_t i ) : CMultiClass1( i ) {}
};
/*
 * 涓嶅甫鏈夋暟鎹垚鍛樼殑鎺ュ彛鍩虹被
 */
struct CBaseClass2
{
    virtual void func() {};
    virtual ~CBaseClass2() {}
};
/*
 * 铏氭嫙緇ф壙浣撶郴
 */
// struct CBaseClassX { CBaseClassX() {i1 = i2 = 0xFFFFFFFF;} size_t i1, i2;};
struct CSubClassV3 : public virtual CBaseClass2
{
};
struct CSubClassV4 : public virtual CBaseClass2
{
};
struct CDiamondClass2 : public CSubClassV3, public CSubClassV4
{
};
struct CDiamondSubClass2 : public CDiamondClass2
{
};

/*
 * 姝e父緇ф壙浣撶郴
 */
struct CSubClassN3 : public CBaseClass2
{
};
struct CSubClassN4 : public CBaseClass2
{
};
struct CMultiClass2 : public CSubClassN3, public CSubClassN4
{
};
struct CMultiSubClass2 : public CMultiClass2
{
};

/*
 * 鍐呭瓨甯冨眬鐢ㄧ被澹版槑.
 */
struct CLayoutBase1
{
    CLayoutBase1() : m_val1( 0 ), m_val2( 1 ) {}

    size_t m_val1, m_val2;
};
struct CLayoutBase2
{
    CLayoutBase2() : m_val1( 3 ) {}

    size_t m_val1;
};
struct CLayoutSubClass1 : public virtual CBaseClass1, public CLayoutBase1, public CLayoutBase2
{
    CLayoutSubClass1() : CBaseClass1( 2 ) {}
};


#define MAX_TEST_COUNT 1000 * 1000 * 16
#define TIME_ELAPSE() ( std::clock() - start * 1.0 ) / CLOCKS_PER_SEC

int main( int argc, char *argv[] )
{
    /*
     * 綾諱綋緋諱腑鐨勫昂瀵?
     */
    std::cout << "================================ sizeof ================================" << std::endl;
    std::cout << "    ----------------------------------------------------------------" << std::endl;
    std::cout << "sizeof( CBaseClass1 )       = " << sizeof( CBaseClass1 ) << std::endl;
    std::cout << std::endl;
    std::cout << "sizeof( CSubClassV1 )       = " << sizeof( CSubClassV1 ) << std::endl;
    std::cout << "sizeof( CSubClassV2 )       = " << sizeof( CSubClassV2 ) << std::endl;
    std::cout << "sizeof( CDiamondClass1 )    = " << sizeof( CDiamondClass1 ) << std::endl;
    std::cout << "sizeof( CDiamondSubClass1 ) = " << sizeof( CDiamondSubClass1 ) << std::endl;
    std::cout << std::endl;
    std::cout << "sizeof( CSubClassN1 )       = " << sizeof( CSubClassN1 ) << std::endl;
    std::cout << "sizeof( CSubClassN2 )       = " << sizeof( CSubClassN2 ) << std::endl;
    std::cout << "sizeof( CMultiClass1 )      = " << sizeof( CMultiClass1 ) << std::endl;
    std::cout << "sizeof( CMultiSubClass1 )   = " << sizeof( CMultiSubClass1 ) << std::endl;

    std::cout << "    ----------------------------------------------------------------" << std::endl;
    std::cout << "sizeof( CBaseClass2 )       = " << sizeof( CBaseClass2 ) << std::endl;
    std::cout << std::endl;
    std::cout << "sizeof( CSubClassV3 )       = " << sizeof( CSubClassV3 ) << std::endl;
    std::cout << "sizeof( CSubClassV4 )       = " << sizeof( CSubClassV4 ) << std::endl;
    std::cout << "sizeof( CDiamondClass2 )    = " << sizeof( CDiamondClass2 ) << std::endl;
    std::cout << "sizeof( CDiamondSubClass2 ) = " << sizeof( CDiamondSubClass2 ) << std::endl;
    std::cout << std::endl;
    std::cout << "sizeof( CSubClassN3 )       = " << sizeof( CSubClassN3 ) << std::endl;
    std::cout << "sizeof( CSubClassN4 )       = " << sizeof( CSubClassN4 ) << std::endl;
    std::cout << "sizeof( CMultiClass2 )      = " << sizeof( CMultiClass2 ) << std::endl;
    std::cout << "sizeof( CMultiSubClass2 )   = " << sizeof( CMultiSubClass2 ) << std::endl;
    /*
     * 瀵硅薄鍐呭瓨甯冨眬
     */
    std::cout << "================================ layout ================================" << std::endl;
    std::cout << "    --------------------------------MI------------------------------" << std::endl;
    CLayoutSubClass1 *lsc = new CLayoutSubClass1;
    std::cout << "sizeof( CLayoutSubClass1 )   = " << sizeof( CLayoutSubClass1 ) << std::endl;
    std::cout << "CLayoutBase1 offset of CLayoutSubClass1 is " << (char*)(CLayoutBase1 *)lsc - (char*)lsc << std::endl;
    std::cout << "CBaseClass1  offset of CLayoutSubClass1 is " << (char*)(CBaseClass1  *)lsc - (char*)lsc << std::endl;
    std::cout << "CLayoutBase2 offset of CLayoutSubClass1 is " << (char*)(CLayoutBase2 *)lsc - (char*)lsc << std::endl;

    int *ptr = (int*)lsc;
    std::cout << "vbc in CLayoutSubClass1 is " << *(int*)ptr[3] << std::endl;

    delete lsc;

    std::cout << "    --------------------------------SI------------------------------" << std::endl;
    CSubClassV1 *scv1 = new CSubClassV1( 1 );
    std::cout << "sizeof( CSubClassV1 )   = " << sizeof( CSubClassV1 ) << std::endl;
    std::cout << "CBaseClass1 offset of CSubClassV1 is " << (char*)(CBaseClass1 *)scv1 - (char*)scv1 << std::endl;

    ptr = (int*)scv1;
    std::cout << "vbc in CSubClassV1 is " << *(int*)ptr[0] << std::endl;

    delete scv1;

    /*
     * 鎬ц兘嫻嬭瘯
     */
    std::cout << "================================ Performance ================================" << std::endl;
    double times[4];
    size_t idx = 0;

    CSubClassV1 *ptr1 = new CDiamondClass1( 1 );
    std::clock_t start = std::clock();
    {
        for ( size_t i = 0; i < MAX_TEST_COUNT; ++i )
            ptr1->m_val = i;
    }
    times[idx++] = TIME_ELAPSE();
    delete static_cast<CDiamondClass1*>( ptr1 );

    CSubClassN1 *ptr2 = new CMultiClass1( 0 );
    start = std::clock();
    {
        for ( size_t i = 0; i < MAX_TEST_COUNT; ++i )
            ptr2->m_val = i;
    }
    times[idx++] = TIME_ELAPSE();
    delete static_cast<CMultiClass1*>( ptr2 );

    std::cout << "CSubClassV1::ptr1->m_val " << times[0] << " s" << std::endl;
    std::cout << "CSubClassN1::ptr2->m_val " << times[1] << " s" << std::endl;

    return 0;
}

嫻嬭瘯鐜錛?br>    杞歡鐜錛歏isual Studio2005 Pro + SP1, boost1.34.0
    紜歡鐜錛歅entiumD 3.0GHz, 4G RAM
嫻嬭瘯鏁版嵁錛?br>================================ sizeof ================================
    ----------------------------------------------------------------
sizeof( CBaseClass1 )       = 4

sizeof( CSubClassV1 )       = 8
sizeof( CSubClassV2 )       = 8
sizeof( CDiamondClass1 )    = 12
sizeof( CDiamondSubClass1 ) = 12

sizeof( CSubClassN1 )       = 4
sizeof( CSubClassN2 )       = 4
sizeof( CMultiClass1 )      = 8
sizeof( CMultiSubClass1 )   = 8
    ----------------------------------------------------------------
sizeof( CBaseClass2 )       = 4

sizeof( CSubClassV3 )       = 8
sizeof( CSubClassV4 )       = 8
sizeof( CDiamondClass2 )    = 12
sizeof( CDiamondSubClass2 ) = 12

sizeof( CSubClassN3 )       = 4
sizeof( CSubClassN4 )       = 4
sizeof( CMultiClass2 )      = 8
sizeof( CMultiSubClass2 )   = 8
================================ layout ================================
    --------------------------------MI------------------------------
sizeof( CLayoutSubClass1 )   = 20
CLayoutBase1 offset of CLayoutSubClass1 is 0
CBaseClass1  offset of CLayoutSubClass1 is 16
CLayoutBase2 offset of CLayoutSubClass1 is 8
vbc in CLayoutSubClass1 is -12
    --------------------------------SI------------------------------
sizeof( CSubClassV1 )   = 8
CBaseClass1 offset of CSubClassV1 is 4
vbc in CSubClassV1 is 0
================================ Performance ================================
CSubClassV1::ptr1->m_val 0.062 s
CSubClassN1::ptr2->m_val 0.016 s

緇撴灉鍒嗘瀽錛?br>    1. 鐢變簬铏氱戶鎵垮紩鍏ョ殑闂存帴鎬ф寚閽堟墍浠ュ鑷翠簡(jiǎn)铏氱戶鎵跨被鐨勫昂瀵鎬細(xì)澧炲姞4涓瓧鑺傦紱
    2. 鐢盠ayout杈撳嚭鍙互鐪嬪嚭錛岃櫄鍩虹被瀛愬璞¤鏀懼湪浜?jiǎn)瀵硅薄鐨劄N儴錛堝亸縐諱負(fù)16錛夛紝騫朵笖vbc
       鎸囬拡蹇呴』绱х揣鐨勬帴鍦ㄨ櫄鍩虹被瀛愬璞$殑鍓嶉潰錛屾墍浠bc鎸囬拡鎵鎸囧悜鐨勫唴瀹逛負(fù)“鍋忕Щ - 4”錛?br>    3. 鐢變簬VC8灝嗗亸縐繪斁鍦ㄤ簡(jiǎn)铏氬嚱鏁拌〃涓紝鎵浠ヤ負(fù)浜?jiǎn)鍖哄垎鍑芥暟鍦板潃鍜屽亸縐伙紝鎵浠ュ亸縐繪槸鐢ㄨˉ
       鐮乮nt琛ㄧず鐨勮礋鍊鹼紱
    4. 闂存帴鎬у彲浠ラ氳繃鎬ц兘鏉ョ湅鍑猴紝鍦ㄨ櫄緇ф壙浣撶郴鍚岄氳繃鎸囬拡璁塊棶鎴愬憳鏃剁殑鏃墮棿涓鑸槸涓鑸?br>       綾昏闂儏鍐典笅鐨?鍊嶅乏鍙籌紝絎﹀悎姹囩紪璇█杈撳嚭鏂囦歡涓殑姹囩紪璇彞鐨勫畨鎺掋?br>


ivy-jie 2009-06-08 22:34 鍙戣〃璇勮
]]>
涓閬撳緇ф壙鍜岃櫄緇ф壙鐨勯潰璇曢http://www.shnenglu.com/ivy-jie/articles/87102.htmlivy-jieivy-jieMon, 08 Jun 2009 14:30:00 GMThttp://www.shnenglu.com/ivy-jie/articles/87102.htmlhttp://www.shnenglu.com/ivy-jie/comments/87102.htmlhttp://www.shnenglu.com/ivy-jie/articles/87102.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/87102.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/87102.html
class A{
public A { std::cout<<A<<}
}

class B: public A{
... // print B
}

class C: public A, pulic B {
... // print C
}

int main(){
C obj;
}
杈撳嚭: AABC銆傜戶鎵垮叧緋繪槸涓夎褰細(xì)A->B->C鍔燗->C銆?br>
闂鏄細(xì)榪欎笁鏉¤竟濡傛灉鑰冭檻铏氱戶鎵匡紝姣忔潯杈規(guī)湁涓ょ鍙兘錛屽叡鍏銆傞偅涔堝叾浠栦竷縐嶇粍鍚堢殑
杈撳嚭鏄粈涔堛?
緙栬瘧鍣? VC6.0
#include "stdafx.h"
#include "iostream"
using namespace std;
class AA {
public:
 AA(){ std::cout<<"AA"<<endl;}
};
class BB: public virtual AA
{
public:
 BB(){ std::cout<<"BB"<<endl;}
};

class CC: public virtual AA,  public (virtual) BB //鎷彿鐨剉irtual鍙湁鍙棤
{
public:
 CC(){ std::cout<<"CC"<<endl;}
};

int main(int argc, char* argv[])
{
 CC obj;

 return 0;
}
杈撳嚭: AA
          BB
          CC
鍏跺畠鎯呭喌緙栬瘧浼?xì)鍑洪?br>涓昏鑰冨療澶氱戶鎵跨殑铏氬熀綾誨湪鍐呭瓨?shù)腑鍙湁涓浠絚opy,濡傛灉涓嶇敤铏氱戶鎵跨殑璇濓紝瀹規(guī)槗閫犳垚浜屼箟鎬э紝緙栬瘧涓嶈繃:)



ivy-jie 2009-06-08 22:30 鍙戣〃璇勮
]]>
闈㈠悜榪囩▼鐨勯潤(rùn)鎬佹垚鍛?/title><link>http://www.shnenglu.com/ivy-jie/articles/85576.html</link><dc:creator>ivy-jie</dc:creator><author>ivy-jie</author><pubDate>Sun, 24 May 2009 02:47:00 GMT</pubDate><guid>http://www.shnenglu.com/ivy-jie/articles/85576.html</guid><wfw:comment>http://www.shnenglu.com/ivy-jie/comments/85576.html</wfw:comment><comments>http://www.shnenglu.com/ivy-jie/articles/85576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivy-jie/comments/commentRss/85576.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivy-jie/services/trackbacks/85576.html</trackback:ping><description><![CDATA[1銆侀潤(rùn)鎬佸叏灞鍙橀噺 <br><br>鍦ㄥ叏灞鍙橀噺鍓嶏紝鍔犱笂鍏抽敭瀛梥tatic錛岃鍙橀噺灝辮瀹氫箟鎴愪負(fù)涓涓潤(rùn)鎬佸叏灞鍙橀噺銆傛垜浠厛涓句竴涓潤(rùn)鎬佸叏灞鍙橀噺鐨勪緥瀛愶紝濡備笅錛?<br>//Example 1#include <iostream.h>void fn();static int n; //瀹氫箟闈?rùn)鎬佸叏灞鍙橀噺void main(){ n=20; cout<<n<<endl; fn();}void fn(){ n++; cout<<n<<endl;} <br><br>闈?rùn)鎬佸叏灞鍙橀噺鏈変互涓嬬壒鐐癸細(xì) <br>璇ュ彉閲忓湪<span style="COLOR: red"><u><strong>鍏ㄥ眬鏁版嵁鍖?/strong></u></span>鍒嗛厤鍐呭瓨錛?<br>鏈粡鍒濆鍖栫殑闈?rùn)鎬佸叏灞鍙橀噺浼?xì)琚E嬪簭鑷姩鍒濆鍖栦負(fù)0錛堣嚜鍔ㄥ彉閲忕殑鍊兼槸闅忔満鐨勶紝闄ら潪瀹冭鏄懼紡鍒濆鍖栵級(jí)錛?<br><span style="COLOR: red"><u><strong>闈?rùn)鎬佸叏灞鍙橀噺鍦ㄥ0鏄庡畠鐨勬暣涓枃浠墮兘鏄彲瑙佺殑錛岃屽湪鏂囦歡涔嬪鏄笉鍙鐨勶紱</strong></u></span> <br>闈?rùn)鎬佸彉閲忛兘鍦ㄥ叏灞鏁版嵁鍖哄垎閰嶅唴瀛橈紝鍖呮嫭鍚庨潰灝嗚鎻愬埌鐨勯潤(rùn)鎬佸眬閮ㄥ彉閲忋傚浜庝竴涓畬鏁寸殑紼嬪簭錛屽湪鍐呭瓨?shù)腑鐨?br><br><span style="COLOR: red"><u><strong>鍒嗗竷鎯呭喌濡備笅鍥撅細(xì) <br>浠g爜鍖?<br>鍏ㄥ眬鏁版嵁鍖?<br>鍫嗗尯 <br>鏍堝尯</strong></u></span> <br><br>涓鑸▼搴忕殑鐢眓ew浜х敓鐨勫姩鎬佹暟鎹瓨鏀懼湪鍫嗗尯錛屽嚱鏁板唴閮ㄧ殑鑷姩鍙橀噺瀛樻斁鍦ㄦ爤鍖恒傝嚜鍔ㄥ彉閲忎竴鑸細(xì)闅忕潃鍑芥暟鐨勯鍑?guó)檧岄噴鏀劇┖闂達(dá)紝闈?rùn)鎬佹暟鎹紙鍗充嬌鏄嚱鏁板唴閮ㄧ殑闈?鎬佸眬閮ㄥ彉閲忥級(jí)涔熷瓨鏀懼湪鍏ㄥ眬鏁版嵁鍖恒傚叏灞鏁版嵁鍖虹殑鏁版嵁騫朵笉浼?xì)鍥犱负鍑芥暟鐨勯鍑?guó)檧岄噴鏀劇┖闂淬傜粏蹇?jī)鐨勮鑰呭彲鑳戒細(xì)鍙戠幇錛孍xample 1涓殑浠g爜涓皢 <br><br><strong><span style="COLOR: red"><u>static int n; //瀹氫箟闈?rùn)鎬佸叏灞鍙橀噺</u></span></strong> <br>鏀逛負(fù) <br><strong style="COLOR: red"><u>int n; //瀹氫箟鍏ㄥ眬鍙橀噺</u></strong> <br>紼嬪簭鐓ф牱姝e父榪愯銆?<br>鐨勭‘錛?strong><u style="COLOR: red">瀹氫箟鍏ㄥ眬鍙橀噺灝卞彲浠ュ疄鐜板彉閲忓湪鏂囦歡涓殑鍏變韓錛屼絾瀹氫箟闈?rùn)鎬佸叏灞鍙橀噺榪樻湁浠ヤ笅濂藉錛?<br>闈?rùn)鎬佸叏灞鍙橀噺涓嶈兘琚叾瀹冩枃浠舵墍鐢紱 <br>鍏跺畠鏂囦歡涓彲浠ュ畾涔夌浉鍚屽悕瀛楃殑鍙橀噺錛屼笉浼?xì)鍙戠敓鍐步H侊紱</u></strong> <br>鎮(zhèn)ㄥ彲浠ュ皢涓婅堪紺轟緥浠g爜鏀逛負(fù)濡備笅錛?<br><br><span style="COLOR: red"><u><strong>//Example 2//File1#include <iostream.h>void fn();static int n; //瀹氫箟闈?rùn)鎬佸叏灞鍙橀噺void main(){ n=20; cout<<n<<endl; fn();}//File2#include <iostream.h><span style="COLOR: #000000">extern int n;</span>void fn(){ n++; cout<<n<<endl;} <br>緙栬瘧騫惰繍琛孍xample 2錛屾?zhèn)兗?xì)鍙戠幇涓婅堪浠g爜鍙互鍒嗗埆閫氳繃緙栬瘧錛屼絾榪愯鏃跺嚭鐜伴敊璇?璇曠潃灝?<br>static int n; //瀹氫箟闈?rùn)鎬佸叏灞鍙橀噺 <br>鏀逛負(fù) <br>int n; //瀹氫箟鍏ㄥ眬鍙橀噺 <br>鍐嶆緙栬瘧榪愯紼嬪簭錛岀粏蹇?jī)浣撲細(xì)鍏ㄥ眬鍙橀噺鍜岄潤(rùn)鎬佸叏灞鍙橀噺鐨勫尯鍒?<br></strong></u></span>2銆侀潤(rùn)鎬佸眬閮ㄥ彉閲?<br><br>鍦ㄥ眬閮ㄥ彉閲忓墠錛屽姞涓婂叧閿瓧static錛岃鍙橀噺灝辮瀹氫箟鎴愪負(fù)涓涓潤(rùn)鎬佸眬閮ㄥ彉閲忋?<br><br>鎴戜滑鍏堜婦涓涓潤(rùn)鎬佸眬閮ㄥ彉閲忕殑渚嬪瓙錛屽涓嬶細(xì) <br><br>//Example 3#include <iostream.h>void fn();void main(){ fn(); fn(); fn();}void fn(){ static n=10; cout<<n<<endl; n++;} <br>閫氬父錛屽湪鍑芥暟浣撳唴瀹氫箟浜?jiǎn)涓涓彉閲忥紝姣忓綋紼嬪簭榪愯鍒拌璇彞鏃墮兘浼?xì)缁欒灞閮ㄥ彉閲忓垎閰嶆爤鍐呭瓨銆備絾闅忕潃紼嬪簭閫鍑哄嚱鏁頒綋錛岀郴緇熷氨浼?xì)鏀跺洖鏍堝唴瀛樺Q屽眬閮ㄥ彉閲忎篃鐩稿簲澶辨晥銆?<br>浣嗘湁鏃跺欐垜浠渶瑕佸湪涓ゆ璋冪敤涔嬮棿瀵瑰彉閲忕殑鍊艱繘琛屼繚瀛樸傞氬父鐨勬兂娉曟槸瀹氫箟涓涓叏灞鍙橀噺鏉ュ疄鐜般備絾榪欐牱涓鏉ワ紝鍙橀噺宸茬粡涓嶅啀灞炰簬鍑芥暟鏈韓浜?jiǎn)锛屼笉鍐嶄粎鍙楀嚱鏁扮殑鎺у堄灱尵l欑▼搴忕殑緇存姢甯︽潵涓嶄究銆?<br>闈?rùn)鎬佸眬閮ㄥ彉閲忔濂藉彲浠ヨВ鍐寵繖涓棶棰樸傞潤(rùn)鎬佸眬閮ㄥ彉閲忎繚瀛樺湪鍏ㄥ眬鏁版嵁鍖猴紝鑰屼笉鏄繚瀛樺湪鏍堜腑錛屾瘡嬈$殑鍊間繚鎸佸埌涓嬩竴嬈¤皟鐢紝鐩村埌涓嬫璧嬫柊鍊箋?<br>闈?rùn)鎬佸眬閮ㄥ彉閲忔湁浠ヤ笅鐗圭偣錛?<br><br>璇ュ彉閲忓湪鍏ㄥ眬鏁版嵁鍖哄垎閰嶅唴瀛橈紱 <br>闈?rùn)鎬佸眬閮ㄥ彉閲忓湪紼嬪簭鎵ц鍒拌瀵硅薄鐨勫0鏄庡鏃惰棣栨鍒濆鍖栵紝鍗充互鍚庣殑鍑芥暟璋冪敤涓嶅啀榪涜鍒濆鍖栵紱 <br>闈?rùn)鎬佸眬閮ㄥ彉閲忎竴鑸湪澹版槑澶勫垵濮嬪寲錛屽鏋滄病鏈夋樉寮忓垵濮嬪寲錛屼細(xì)琚▼搴忚嚜鍔ㄥ垵濮嬪寲涓?錛?<br><span style="COLOR: #ff0000"><u><strong>瀹冨緇堥┗鐣欏湪鍏ㄥ眬鏁版嵁鍖猴紝鐩村埌紼嬪簭榪愯緇撴潫銆備絾鍏?span style="COLOR: #000000">浣滅敤鍩熶負(fù)灞閮ㄤ綔鐢ㄥ煙</span>錛屽綋瀹氫箟瀹冪殑鍑芥暟鎴栬鍙ュ潡緇撴潫鏃訛紝鍏朵綔鐢ㄥ煙闅忎箣緇撴潫錛?<br></strong></u></span>3銆侀潤(rùn)鎬佸嚱鏁?<br><br>鍦ㄥ嚱鏁扮殑榪斿洖綾誨瀷鍓嶅姞涓妔tatic鍏抽敭瀛?鍑芥暟鍗寵瀹氫箟涓洪潤(rùn)鎬佸嚱鏁般傞潤(rùn)鎬佸嚱鏁頒笌鏅氬嚱鏁頒笉鍚岋紝瀹冨彧鑳藉湪澹版槑瀹冪殑鏂囦歡褰撲腑鍙錛屼笉鑳借鍏跺畠鏂囦歡浣跨敤銆?<br><br>闈?rùn)鎬佸嚱鏁扮殑渚嬪瓙錛?<br><br>//Example 4#include <iostream.h>static void fn();//澹版槑闈?rùn)鎬佸嚱鏁皏oid main(){ fn();}void fn()//瀹氫箟闈?rùn)鎬佸嚱鏁皗 int n=10; cout<<n<<endl;} <br>瀹氫箟闈?rùn)鎬佸嚱鏁扮殑濂藉錛?<br><span style="COLOR: #ff0000"><u><strong>闈?rùn)鎬佸嚱鏁頒笉鑳借鍏跺畠鏂囦歡鎵鐢紱 <br>鍏跺畠鏂囦歡涓彲浠ュ畾涔夌浉鍚屽悕瀛楃殑鍑芥暟錛屼笉浼?xì)鍙戠敓鍐步H侊紱</strong></u></span> <img src ="http://www.shnenglu.com/ivy-jie/aggbug/85576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivy-jie/" target="_blank">ivy-jie</a> 2009-05-24 10:47 <a href="http://www.shnenglu.com/ivy-jie/articles/85576.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>闈㈠悜瀵硅薄鐨勯潤(rùn)鎬佹垚鍛?/title><link>http://www.shnenglu.com/ivy-jie/articles/85575.html</link><dc:creator>ivy-jie</dc:creator><author>ivy-jie</author><pubDate>Sun, 24 May 2009 02:42:00 GMT</pubDate><guid>http://www.shnenglu.com/ivy-jie/articles/85575.html</guid><wfw:comment>http://www.shnenglu.com/ivy-jie/comments/85575.html</wfw:comment><comments>http://www.shnenglu.com/ivy-jie/articles/85575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivy-jie/comments/commentRss/85575.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivy-jie/services/trackbacks/85575.html</trackback:ping><description><![CDATA[ 闈?rùn)鎬佺被鎴愬憳鍖呮嫭<font color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>鍜?font color=#ff0000>闈?rùn)鎬佸嚱鏁版垚鍛?/font>涓ら儴鍒嗐?nbsp;  <br>    <br>1<strong> 闈?rùn)鎬佹暟鎹垚鍛橈細(xì)</strong>   <br>   <br>   <br>      綾諱綋涓殑鏁版嵁鎴愬憳鐨勫0鏄庡墠鍔犱笂<font color=#3366ff>static</font>鍏抽敭瀛楋紝璇ユ暟鎹垚鍛樺氨鎴愪負(fù)浜?jiǎn)璇ゾc葷殑<font color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>銆傚拰鍏朵粬鏁版嵁鎴愬憳?shù)竴鏍鳳紝<font color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>涔熼伒瀹?font color=#3366ff>public/protected/private</font>璁塊棶瑙勫垯銆傚悓鏃訛紝<font color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>榪樺叿鏈変互涓嬬壒鐐癸細(xì)   <br>    <br>        1.闈?rùn)鎬佹暟鎹垚鍛樼殑瀹氫箟銆?  <br>           <span style="COLOR: red"> 闈?rùn)鎬佹暟鎹垚鍛樺疄闄呬笂鏄被鍩熶腑鐨勫叏灞鍙橀噺銆傛墍浠ワ紝<font style="COLOR: red" color=#000000>闈?rùn)鎬佹垚鍛樹(shù)笉鑳藉湪綾誨畾涔夐噷杈瑰垵濮嬪寲錛屽彧鑳藉湪class body澶栧垵濮嬪寲銆?/font></span>    涓句緥濡備笅錛?  <br>    <br>        xxx.h鏂囦歡   <br>        class   base{   <br>            private:   <br>            static   const   int   _i;//澹版槑錛屾爣鍑哻++鏀寔鏈夊簭綾誨瀷鍦ㄧ被浣撲腑鍒濆鍖?浣唙c6涓嶆敮鎸併?  <br>        };     <br>    <br>        xxx.cpp鏂囦歡   <br>        const   int   base::_i=10;//<span style="COLOR: red"><u><strong>瀹氫箟(鍒濆鍖?鏃朵笉鍙梡rivate鍜宲rotected璁塊棶闄愬埗.</strong></u></span>   <br>    <em>   <br></em>    <br>        2.<span style="COLOR: red"><font color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>琚?font color=#ff0000>綾?/font>鐨勬墍鏈夊璞℃墍鍏變韓錛屽寘鎷綾繪淳鐢熺被鐨勫璞°?/span>鍗蟲(chóng)淳鐢熺被瀵硅薄涓庡熀綾誨璞″叡浜熀綾葷殑闈?rùn)鎬佹暟鎹垚鍛樸?nbsp;<br>  <br><span style="COLOR: red"><strong><u>        3 鍒濆鍖?鎴栧畾涔?錛岃闂柟寮?br></u></strong></span><br>         闈?rùn)鎬佹暟鎹垚鍛樺垵濮嬪寲鐨勬牸寮忎負(fù)錛?<br>        錛滄暟鎹被鍨嬶紴錛滅被鍚嶏紴::錛滈潤(rùn)鎬佹暟鎹垚鍛樺悕錛?錛滃鹼紴 <br>       綾葷殑闈?rùn)鎬佹暟鎹垚鍛樻湁涓ょ璁塊棶褰㈠紡錛?<br>        錛滅被瀵硅薄鍚嶏紴<u><strong style="COLOR: red">.</strong></u>錛滈潤(rùn)鎬佹暟鎹垚鍛樺悕錛?鎴?錛滅被綾誨瀷鍚嶏紴<span style="COLOR: red"><u><strong>::</strong></u></span>錛滈潤(rùn)鎬佹暟鎹垚鍛樺悕錛?<br>       濡傛灉闈?rùn)鎬佹暟鎹垚鍛樼殑璁塊棶鏉冮檺鍏佽鐨勮瘽錛?span style="COLOR: red"><u><strong>鍗硃ublic鐨勬垚鍛?/strong></u></span>錛夛紝鍙湪紼嬪簭涓紝鎸変笂榪版牸寮忔潵寮曠敤闈?rùn)鎬佹暟鎹垚鍛?nbsp;;<br><br>  <br>       3.<font style="COLOR: #000000" color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>鍙互鎴愪負(fù)鎴愬憳鍑芥暟鐨勫彲閫夊弬鏁幫紝鑰屾櫘閫氭暟鎹垚鍛樺垯涓嶅彲浠ャ備婦渚嬪涓嬶細(xì)   <br>      class   base{   <br>          public   :   <br>          static   int   _staticVar;   <br>          int   _var;   <br>          void   foo1(int   i=_staticVar);//<font color=#339966>姝g‘,_staticVar涓洪潤(rùn)鎬佹暟鎹垚鍛?/font>   <br>          void   foo2(int   i=_var);//<font color=#339966>閿欒,_var涓烘櫘閫氭暟鎹垚鍛?/font>   <br>      };           <br>        <br>      4.鈽?font style="COLOR: #000000" color=#ff0000>闈?rùn)鎬佹暟鎹垚鍛?/font>鐨勭被鍨嬪彲浠ユ槸鎵灞炵被鐨勭被鍨嬶紝鑰屾櫘閫氭暟鎹垚鍛樺垯涓嶅彲浠ャ傛櫘閫氭暟鎹垚鍛樼殑鍙兘澹版槑涓?nbsp;鎵灞炵被綾誨瀷鐨勬寚閽堟垨寮曠敤銆備婦渚嬪涓嬶細(xì)   <br>        <br>      class   base{   <br>          public   :   <br>          static   base   _object1;//姝g‘錛岄潤(rùn)鎬佹暟鎹垚鍛?  <br>          base   _object2;//閿欒   <br>          base   *pObject;//姝g‘錛屾寚閽?  <br>          base   &mObject;//姝g‘錛屽紩鐢?  <br>      };   <br>    <br>    5.鈽呰繖涓壒鎬э紝鎴戜笉鐭ラ亾鏄睘浜庢爣鍑哻++涓殑鐗規(guī)э紝榪樻槸vc6鑷繁鐨勭壒鎬с?  <br>        闈?rùn)鎬佹暟鎹垚鍛樼殑鍊煎湪const鎴愬憳鍑芥暟涓彲浠ヨ鍚堟硶鐨勬敼鍙樸備婦渚嬪涓嬶細(xì)   <br>    <br>      class   base{   <br>          public:   <br>          base(){_i=0;_val=0;}   <br>    <br>          mutable   int   _i;   <br>          static   int   _staticVal;     <br>          int   _val;   <br>          void   test()   const{//const   鎴愬憳鍑芥暟   <br>    <br>                _i++;//姝g‘錛宮utable鏁版嵁鎴愬憳   <br>                _staticVal++;//姝g‘錛宻tatic鏁版嵁鎴愬憳   <br>                _val++;//閿欒   <br>    <br>          }   <br>      };   <br>      int   base::_staticVal=0;   <br>    <br><strong>2  闈?rùn)鎬佹垚鍛樺嚱鏁?/strong>   <br>     <br>      1.闈?rùn)鎬佹垚鍛樺嚱鏁扮殑鍦板潃鍙敤鏅氬嚱鏁版寚閽堝偍瀛橈紝鑰屾櫘閫氭垚鍛樺嚱鏁板湴鍧闇瑕佺敤   綾繪垚鍛樺嚱鏁版寚閽堟潵鍌ㄥ瓨銆備婦渚嬪涓嬶細(xì)   <br>          class   base{   <br>              static   int   func1();   <br>              int   func2();   <br>          };   <br>    <br>          int   (*pf1)()=&base::func1;//鏅氱殑鍑芥暟鎸囬拡   <br>          int   (base::*pf2)()=&base::func2;//鎴愬憳鍑芥暟鎸囬拡   <br>    <br>    2.<span style="COLOR: red">闈?rùn)鎬佹垚鍛樺嚱鏁頒笉鍙互璋冪敤綾葷殑闈為潤(rùn)鎬佹垚鍛樸?u><strong>鍥犱負(fù)闈?rùn)鎬佹垚鍛樺嚱鏁頒笉鍚玹his鎸囬拡</strong></u></span><u><strong>銆?/strong></u>   <br>     閫氬父鎯呭喌涓嬶紝this 鏄己鐪佺殑銆傚鍑芥暟fn()瀹為檯涓婃槸this->fn()銆備絾鏄笌鏅氬嚱鏁扮浉姣旓紝闈?rùn)鎬佹垚鍛樺嚱鏁扮敱浜庝笉鏄笌浠諱綍鐨勫璞$浉鑱旂郴錛屽洜姝ゅ畠涓嶅叿鏈塼his鎸?閽堛備粠榪欎釜鎰忎箟涓婅錛?span style="COLOR: red"><u><strong>瀹冩棤娉曡闂睘浜庣被瀵硅薄鐨勯潪闈?rùn)鎬佹暟鎹垚鍛?/strong></u></span>錛?span style="COLOR: red"><u><strong>涔熸棤娉曡闂潪闈?rùn)鎬佹垚鍛樺嚱鏁?/strong></u></span>錛屽畠<span style="COLOR: red"><u><strong>鍙兘璋冪敤鍏朵綑鐨勯潤(rùn)鎬佹垚鍛樺嚱鏁?/strong></u></span>銆?nbsp;<br>    <br>      3.闈?rùn)鎬佹垚鍛樺嚱鏁頒笉鍙互鍚屾椂澹版槑涓?  virtual銆乧onst銆乿olatile鍑芥暟銆備婦渚嬪涓嬶細(xì)   <br>        class   base{   <br>              virtual   static   void   func1();//閿欒   <br>              static   void   func2()   const;//閿欒   <br>              static   void   func3()   volatile;//閿欒   <br>                     };   <br><br>3   闈?rùn)鎬佹瀯閫犲嚱鏁?br>     闈?rùn)鎬佹瀯閫犲嚱鏁拌嚜鍔ㄨ璋冪敤錛屼笉鑳借鏄懼紡璋冪敤銆傝櫧鐒舵彁渚涗簡(jiǎn)璁稿綰︽潫鏉′歡錛屼絾鏄潤(rùn)鎬佹瀯閫犲嚱鏁版墽琛岀殑紜垏鏃墮棿鍜岄『搴忔槸涓嶇‘瀹氱殑錛?br>涓涓被鐨勯潤(rùn)鎬佹瀯閫犲嚱鏁板湪榪欎釜綾葷殑浠諱綍瀹炰緥琚垱寤哄墠鎵ц銆?br>涓涓被鐨勯潤(rùn)鎬佹瀯閫犲嚱鏁板湪綾葷殑浠諱綍闈?rùn)鎬佹垚鍛樿寮曠敤鍓嶆墽琛屻?br>涓涓被鐨勯潤(rùn)鎬佹瀯閫犲嚱鏁板湪瀹冪殑鎵鏈夋淳鐢熺被鐨勯潤(rùn)鎬佹瀯閫犲嚱鏁版墽琛屼箣鍚庢墽琛屻?br>涓涓被鐨勯潤(rùn)鎬佹瀯閫犲嚱鏁頒粠涓嶄細(xì)琚墽琛屼竴嬈′互涓娿?br> <img src ="http://www.shnenglu.com/ivy-jie/aggbug/85575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivy-jie/" target="_blank">ivy-jie</a> 2009-05-24 10:42 <a href="http://www.shnenglu.com/ivy-jie/articles/85575.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀛愮被鐖剁被鏋勯犲嚱鏁拌皟鐢ㄩ『搴?/title><link>http://www.shnenglu.com/ivy-jie/articles/85481.html</link><dc:creator>ivy-jie</dc:creator><author>ivy-jie</author><pubDate>Fri, 22 May 2009 16:27:00 GMT</pubDate><guid>http://www.shnenglu.com/ivy-jie/articles/85481.html</guid><wfw:comment>http://www.shnenglu.com/ivy-jie/comments/85481.html</wfw:comment><comments>http://www.shnenglu.com/ivy-jie/articles/85481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivy-jie/comments/commentRss/85481.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivy-jie/services/trackbacks/85481.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">瀛愮被緇ф壙鍜岃皟鐢ㄧ埗綾葷殑鏋勯犳柟娉?/p> <p style="TEXT-INDENT: 2em"> <table> <tbody> <tr> <td> <p> </p> <p style="TEXT-INDENT: 2em">1.濡傛灉瀛愮被娌℃湁瀹氫箟鏋勯犳柟娉?鍒欒皟鐢ㄧ埗綾葷殑鏃犲弬鏁扮殑鏋勯犳柟娉?.</p> <p style="COLOR: red; TEXT-INDENT: 2em">2.濡傛灉瀛愮被瀹氫箟浜?jiǎn)鏋勯犳柟娉?涓嶈鏄棤鍙傛暟榪樻槸甯﹀弬鏁?鍦ㄥ垱寤哄瓙綾葷殑瀵硅薄鐨勬椂鍊?棣栧厛<u><strong>鎵ц鐖剁被鏃犲弬鏁扮殑鏋勯犳柟娉?/strong></u>,鐒跺悗鎵ц鑷繁鐨勬瀯閫犳柟娉曘?/p> <p style="TEXT-INDENT: 2em">3.濡傛灉瀛愮被璋冪敤鐖剁被甯﹀弬鏁扮殑鏋勯犳柟娉?鍙互閫氳繃super(鍙傛暟)璋冪敤鎵闇瑕佺殑鐖剁被鐨勬瀯閫犳柟娉?鍒囪璇彞鍋氫負(fù)<span style="COLOR: red">瀛愮被鏋勯犳柟娉曚腑鐨勭涓鏉¤鍙?/span>銆?/p> <p style="TEXT-INDENT: 2em">4.濡傛灉鏌愪釜鏋勯犳柟娉曡皟鐢ㄧ被涓殑鍏朵粬鐨勬瀯閫犳柟娉?鍒欏彲浠ョ敤this(鍙傛暟),鍒囪璇彞鏀懼湪鏋勯犳柟娉曠殑絎竴鏉?</p> <p style="TEXT-INDENT: 2em">璇寸櫧浜?鍘熷垯灝辨槸,鍏堣皟鐢ㄧ埗浜茬殑.(娌℃湁灝遍粯璁よ皟,鏈変簡(jiǎn)灝辨寜鏈夌殑璋?鍙嶆鍙鏈変竴涓氨鍙互浜?)</p> <p style="TEXT-INDENT: 2em">package test;</p> <p style="TEXT-INDENT: 2em">class Father{</p> <p style="TEXT-INDENT: 2em">String s = "Run constructor method of Father";</p> <p style="TEXT-INDENT: 2em">public Father(){</p> <p style="TEXT-INDENT: 2em">   System.out.println(s);</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">public Father(String str){</p> <p style="TEXT-INDENT: 2em">   s= str;</p> <p style="TEXT-INDENT: 2em">   System.out.println(s);</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">class Son extends Father{</p> <p style="TEXT-INDENT: 2em">String s= "Run constructor method of son";</p> <p style="TEXT-INDENT: 2em">public Son(){</p> <p style="TEXT-INDENT: 2em">   //瀹為檯涓婂湪榪欓噷鍔犱笂super()錛屽拰娌″姞鏄竴涓牱鐨?/p> <p style="TEXT-INDENT: 2em">   System.out.println(s);</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">public Son(String str){</p> <p style="TEXT-INDENT: 2em">   this();//榪欓噷璋冪敤this()琛ㄧず璋冪敤鏈被鐨凷on(),鍥犱負(fù)Son()涓湁浜?jiǎn)涓涓猻uper()浜?jiǎn)锛屾墍浠ヨ繖閲屼笉鑳藉啀鍔犱簡(jiǎn)銆?/p> <p style="TEXT-INDENT: 2em">   s = str;</p> <p style="TEXT-INDENT: 2em">   System.out.println(s);</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">public Son(String str1, String str2){</p> <p style="TEXT-INDENT: 2em">   super(str1+" "+str2);//鍥犱負(fù)榪欓噷宸茬粡璋冪敤浜?jiǎn)涓涓埗綾葷殑甯﹀弬鏁扮殑super("---")浜?jiǎn)锛屾墍浠ヤ笉浼?xì)鍐嶈嚜鍔ㄨ皟鐢ㄤ簡(jiǎn)鏃犲弬鏁扮殑浜?jiǎn)銆?/p> <p style="TEXT-INDENT: 2em">   s = str1;</p> <p style="TEXT-INDENT: 2em">   System.out.println(s);</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">public class MyClass9 {</p> <p style="TEXT-INDENT: 2em">public static void main(String[] args){</p> <p style="TEXT-INDENT: 2em">   Father obfather1 = new Father();</p> <p style="TEXT-INDENT: 2em">   Father obfather2 = new Father("Hello Father");</p> <p style="TEXT-INDENT: 2em">   Son obson1 = new Son();</p> <p style="TEXT-INDENT: 2em">   Son obson2 = new Son("hello son");</p> <p style="TEXT-INDENT: 2em">   Son obson3 = new Son("hello son","hello father");</p> <p style="TEXT-INDENT: 2em">  </p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">}</p> <p style="TEXT-INDENT: 2em">===============</p> <p style="TEXT-INDENT: 2em">緇撴灉:</p> <p style="TEXT-INDENT: 2em">Run constructor method of Father</p> <p style="TEXT-INDENT: 2em">Hello Father</p> <p style="TEXT-INDENT: 2em">Run constructor method of Father</p> <p style="TEXT-INDENT: 2em">Run constructor method of son</p> <p style="TEXT-INDENT: 2em">Run constructor method of Father</p> <p style="TEXT-INDENT: 2em">Run constructor method of son</p> <p style="TEXT-INDENT: 2em">hello son</p> <p style="TEXT-INDENT: 2em">hello son hello father</p> <p style="TEXT-INDENT: 2em">hello son</p> </td> </tr> </tbody> </table> </p> <img src ="http://www.shnenglu.com/ivy-jie/aggbug/85481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivy-jie/" target="_blank">ivy-jie</a> 2009-05-23 00:27 <a href="http://www.shnenglu.com/ivy-jie/articles/85481.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>杈撳叆鍑芥暟scanf()璇﹁Вhttp://www.shnenglu.com/ivy-jie/articles/85332.htmlivy-jieivy-jieFri, 22 May 2009 01:01:00 GMThttp://www.shnenglu.com/ivy-jie/articles/85332.htmlhttp://www.shnenglu.com/ivy-jie/comments/85332.htmlhttp://www.shnenglu.com/ivy-jie/articles/85332.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/85332.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/85332.html  濡傛灉浣狅細(xì)  
  char   c[20];  
  scanf("%s",c);  
  杈撳叆:this   is   a   c   program!   
 
  瀹冩帴鏀跺埌this鍚庨亣鍒扮┖鏍鹼紝璁や負(fù)瀵瑰簲%s鐨勬暟鎹」宸茬粨鏉燂紝鍚庨潰鐨勶紙鍖呭惈絀烘牸錛変笉鑳借緭鍏ャ? 
  浣犳兂杈撳叆甯︾┖鏍肩殑瀛楃涓詫紝鍙湁浣跨敤gets(c);  
  浣嗛仐鎲劇殑鏄敤gets()鍑芥暟涓嬈″彧鑳借緭鍏ヤ竴涓瓧絎︿覆銆?br> 2 鎬葷粨
%d,閬囧埌鏁板瓧,'+','-'浠ュ鐨勫瓧絎︾粨鏉?鍙煩榪囩┖鏍?

%f,,%lf:閬囧埌鏁板瓧, '.', 'e','+','-'涔嬪鐨勫瓧絎︾粨鏉?鍙煩榪囩┖鏍?br>
%s,浠庣涓涓潪絀烘牸瀛楃璧風(fēng)洿鍒頒笅涓涓┖鏍肩粨鏉?

%c,閬囧埌瀛楃灝辮祴鍊?涓嶇鏄┖鏍艱繕鏄洖杞︿箣綾葷殑.

  鍋囧紼嬪簭涓嚭鐜拌繖鏍風(fēng)殑浠g爜,scanf("%d,%s,%c,%c").铏界劧紼嬪簭鏄互 ', '浣滀負(fù)鍒嗛殧鐨?浣?s鏄笉璁よ繖涓?', '鐨?瀹冨彧璁ょ┖鏍?鎵浠ヤ細(xì)鍑虹幇鍙橀噺涓嶈兘姝g‘璧嬪肩殑鎯呭喌,濡傛灉浣犲皢','鍘繪帀,浣嗙敱浜?c鍗撮亣鍒扮┖鏍煎張涓嶄細(xì)璺寵繃,鎵浠ヤ篃涓嶄細(xì)婊¤凍闇瑕?閫氳繃涓婇潰鐨勬垜浠煡閬?%c閬囧埌絀烘牸鏄笉浼?xì)锜q囩殑,鎵浠ユ垜閲囧彇涓嬮潰榪欎釜鏂瑰紡鏉ヨВ鍐?鍦?c鐨勫墠闈㈠姞涓涓┖鏍兼潵澶勭悊,榪欐牱灝卞彲浠ヨВ鍐充笂闈㈢殑鎵鏈夐棶棰樹(shù)簡(jiǎn),鎵浠ユ垜浠湪浣跨敤%c鏃?瑕佸湪鍓嶉潰鍔犱笂涓涓┖鏍?/span>,鍏繪垚榪欑涔?fàn)鎯彲浠ョ渷鍘讳笉灏戦喝潈?chǔ),騫朵笖鍦ㄤ嬌鐢?c涔嬪墠鏈濂借繕鍔犱笂涓鍙?span style="COLOR: #ff0000">fflush(stdin);鐢ㄦ潵娓呴櫎緙撳瓨.
3 gets()
   鍔熻兘:浠巗tdin嫻佷腑璇誨彇瀛楃涓詫紝鐩磋嚦鎺ュ彈鍒版崲琛岀鎴朎OF鏃跺仠姝紝騫跺皢璇誨彇鐨勭粨鏋滃瓨鏀懼湪str鎸囬拡鎵鎸囧悜鐨勫瓧絎︽暟緇勪腑銆傛崲琛岀涓嶄綔涓鴻鍙栦覆鐨勫唴瀹癸紝璇誨彇鐨勬崲琛岀琚漿鎹負(fù)null鍊鹼紝騫剁敱姝ゆ潵緇撴潫瀛楃涓層?br>   娉ㄦ剰:鏈嚱鏁板彲浠ユ棤闄愯鍙栵紝涓嶄細(xì)鍒ゆ柇涓婇檺錛屾墍浠ョ▼搴忓憳搴旇紜繚str鐨勭┖闂磋凍澶熷ぇ錛屼互渚垮湪鎵ц璇繪搷浣滄椂涓嶅彂鐢熸孩鍑恒?br>   瀹炰緥錛?include"stdio.h"
                  void main()
                   {
                            char str[15];
                            gets(str);
                            printf("%s/n",str);

                   }

 





ivy-jie 2009-05-22 09:01 鍙戣〃璇勮
]]>
杞?qsort涓冪搴旂敤http://www.shnenglu.com/ivy-jie/articles/83327.htmlivy-jieivy-jieMon, 18 May 2009 15:52:00 GMThttp://www.shnenglu.com/ivy-jie/articles/83327.htmlhttp://www.shnenglu.com/ivy-jie/comments/83327.htmlhttp://www.shnenglu.com/ivy-jie/articles/83327.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/83327.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/83327.html
<鏈枃涓帓搴忛兘鏄噰鐢ㄧ殑浠庡皬鍒板ぇ鎺掑簭>

涓銆佸int綾誨瀷鏁扮粍鎺掑簭

int num[100];

Sample:

int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}

qsort(num,100,sizeof(num[0]),cmp);

浜屻佸char綾誨瀷鏁扮粍鎺掑簭錛堝悓int綾誨瀷錛?

char word[100];

Sample:

int cmp( const void *a , const void *b )
{
return *(char *)a - *(int *)b;
}

qsort(word,100,sizeof(word[0]),cmp);

涓夈佸double綾誨瀷鏁扮粍鎺掑簭錛堢壒鍒娉ㄦ剰錛?

double in[100];

int cmp( const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 : -1;
}

qsort(in,100,sizeof(in[0]),cmp)錛?

鍥涖佸緇撴瀯浣撲竴綰ф帓搴?

struct In
{
double data;
int other;
}s[100]

//鎸夌収data鐨勫間粠灝忓埌澶у皢緇撴瀯浣撴帓搴?鍏充簬緇撴瀯浣撳唴鐨勬帓搴忓叧閿暟鎹甦ata鐨勭被鍨嬪彲浠ュ緢澶氱錛屽弬鑰冧笂闈㈢殑渚嬪瓙鍐?

int cmp( const void *a ,const void *b)
{
return (*(In *)a).data > (*(In *)b).data ? 1 : -1;
}

qsort(s,100,sizeof(s[0]),cmp);

浜斻佸緇撴瀯浣撲簩綰ф帓搴?

struct In
{
int x;
int y;
}s[100];

//鎸夌収x浠庡皬鍒板ぇ鎺掑簭錛屽綋x鐩哥瓑鏃舵寜鐓浠庡ぇ鍒板皬鎺掑簭

int cmp( const void *a , const void *b )
{
struct In *c = (In *)a;
struct In *d = (In *)b;
if(c->x != d->x) return c->x - d->x;
else return d->y - c->y;
}

qsort(s,100,sizeof(s[0]),cmp);

鍏佸瀛楃涓茶繘琛屾帓搴?

struct In
{
int data;
char str[100];
}s[100];

//鎸夌収緇撴瀯浣撲腑瀛楃涓瞫tr鐨勫瓧鍏擱『搴忔帓搴?

int cmp ( const void *a , const void *b )
{
return strcmp( (*(In *)a)->str , (*(In *)b)->str );
}

qsort(s,100,sizeof(s[0]),cmp);

涓冦佽綆楀嚑浣曚腑姹傚嚫鍖呯殑cmp

int cmp(const void *a,const void *b) //閲嶇偣cmp鍑芥暟錛屾妸闄や簡(jiǎn)1鐐瑰鐨勬墍鏈夌偣錛屾棆杞搴︽帓搴?
{
struct point *c=(point *)a;
struct point *d=(point *)b;
if( calc(*c,*d,p[1]) < 0) return 1;
else if( !calc(*c,*d,p[1]) && dis(c->x,c->y,p[1].x,p[1].y) < dis(d->x,d->y,p[1].x,p[1].y)) //濡傛灉鍦ㄤ竴鏉$洿綰夸笂錛屽垯鎶婅繙鐨勬斁鍦ㄥ墠闈?
return 1;
else return -1;
}

PS:

鍏朵腑鐨剄sort鍑芥暟鍖呭惈鍦?lt;stdlib.h>鐨勫ご鏂囦歡閲岋紝strcmp鍖呭惈鍦?lt;string.h>鐨勫ご鏂囦歡閲?

ivy-jie 2009-05-18 23:52 鍙戣〃璇勮
]]>
C++綆磋█1:緇濅笉鍦ㄦ瀯閫犳垨鏋愭瀯鏈熻皟鐢ㄨ櫄鍑芥暟http://www.shnenglu.com/ivy-jie/articles/83251.htmlivy-jieivy-jieMon, 18 May 2009 09:26:00 GMThttp://www.shnenglu.com/ivy-jie/articles/83251.htmlhttp://www.shnenglu.com/ivy-jie/comments/83251.htmlhttp://www.shnenglu.com/ivy-jie/articles/83251.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/83251.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/83251.html
class Transaction { // base class for all
銆public: // transactions
銆銆Transaction();

銆銆virtual void logTransaction() const = 0; // make type-dependent
銆銆// log entry
銆銆...
};

Transaction::Transaction() // implementation of
{
銆// base class ctor
銆...
銆logTransaction(); // as final action, log this
} // transaction

class BuyTransaction: public Transaction {
銆// derived class
銆public:
銆銆virtual void logTransaction() const; // how to log trans-
銆銆// actions of this type
銆銆...
};

class SellTransaction: public Transaction {
// derived class
public:
銆virtual void logTransaction() const; // how to log trans-
銆// actions of this type
...
};

銆銆鑰冭檻鎵ц榪欒浠g爜鏃朵細(xì)鍙戠敓浠涔堬細(xì)

BuyTransaction b;

銆銆寰堟槑鏄?BuyTransaction 鐨勬瀯閫犲嚱鏁頒細(xì)琚皟鐢紝浣嗘槸棣栧厛錛孴ransaction 鐨勬瀯閫犲嚱鏁板繀欏誨厛琚皟鐢紝媧劇敓綾誨璞′腑鐨勫熀綾婚儴鍒嗗厛浜庢淳鐢熺被閮ㄥ垎琚瀯閫犮俆ransaction 鐨勬瀯閫犲嚱鏁扮殑鏈鍚庝竴琛岃皟鐢ㄨ櫄鍑芥暟 logTransaction錛屼絾鏄粨鏋滀細(xì)璁╀綘澶у悆涓鎯婏紝琚皟鐢ㄧ殑 logTransaction 鐗堟湰鏄湪 Transaction 涓殑閭d釜錛岃屼笉鏄?BuyTransaction 涓殑鈥斺斿嵆浣胯鍒涘緩鐨勫璞$被鍨嬫槸 BuyTransaction銆傚熀綾繪瀯閫犳湡闂達(dá)紝铏氬嚱鏁頒粠鏉ヤ笉浼?xì)鍚戜笅鍖归厤锛坓o down錛夊埌媧劇敓綾匯傚彇鑰屼唬涔嬬殑鏄紝閭d釜瀵硅薄鐨勮涓哄氨濂藉儚瀹冪殑綾誨瀷鏄熀綾匯傞潪姝e紡鍦拌錛?span style="COLOR: #ff0000">鍩虹被鏋勯犳湡闂達(dá)紝铏氬嚱鏁扮姝?/span>銆?榪欎釜琛ㄩ潰涓婄湅璧鋒潵鍖し鎵鎬濈殑琛屼負(fù)瀛樺湪涓涓緢濂界殑鐞嗙敱銆傚洜涓哄熀綾葷殑鏋勯犲嚱鏁板湪媧劇敓綾繪瀯閫犲嚱鏁頒箣鍓嶆墽琛岋紝褰撳熀綾繪瀯閫犲嚱鏁拌繍琛屾椂錛屾淳鐢熺被鏁版嵁鎴愬憳榪樻病鏈夎鍒濆鍖栥傚鏋滃熀綾繪瀯閫犳湡闂磋皟鐢ㄧ殑铏氬嚱鏁板悜涓嬪尮閰嶏紙go down錛夊埌媧劇敓綾伙紝媧劇敓綾葷殑鍑芥暟鐞嗘墍褰撶劧浼?xì)娑夊強(qiáng)鍒版湰鍦版暟鎹垚鍛樺Q屼絾鏄偅浜涙暟鎹垚鍛樿繕娌℃湁琚垵濮嬪寲銆傝繖灝變細(xì)涓烘湭瀹氫箟琛屼負(fù)鍜屾?zhèn)斾箣鏅氱煟鐨勮皟璇曞櫓姊﹀紑浜?jiǎn)涓寮犻氳璇?/span>銆傝皟鐢ㄦ秹鍙?qiáng)鍒颁竴涓璞¤繕娌℃湁琚垵濮嬪寲鐨勯儴鍒嗚嚜鐒舵槸鍗遍櫓鐨勶紝鎵浠?C++ 鍛婅瘔浣犳璺笉閫氥?br>      鍦ㄥ疄闄呬笂榪樻湁姣旇繖鏇村鐨勬洿娣卞眰嬈$殑鍘熺悊銆傚湪媧劇敓綾誨璞$殑鍩虹被鏋勯犳湡闂達(dá)紝瀵硅薄鐨勭被鍨嬫槸閭d釜鍩虹被鐨勩?span style="COLOR: #ff0000">涓嶄粎铏氬嚱鏁頒細(xì)瑙f瀽鍒板熀綾伙紝鑰屼笖璇█涓敤鍒拌繍琛屾椂綾誨瀷淇℃伅錛坮untime type information錛夌殑閰嶄歡錛堜緥濡傦紝dynamic_cast鍜?typeid錛夛紝涔熶細(xì)灝嗗璞¤涓哄熀綾葷被鍨嬨?/span>鍦ㄦ垜浠殑渚嬪瓙涓紝褰?Transaction 鏋勯犲嚱鏁拌繍琛屽垵濮嬪寲 BuyTransaction 瀵硅薄鐨勫熀綾婚儴鍒嗘椂錛屽璞$殑綾誨瀷鏄?Transaction銆侰++ 鐨勬瘡涓涓厤浠跺皢浠ュ涓嬬溂鍏夋潵鐪嬪緟瀹冿紝騫跺瀹冧駭鐢熻繖鏍風(fēng)殑鎰熻錛氬璞$殑 BuyTransaction 鐗規(guī)湁鐨勯儴鍒嗚繕娌℃湁琚垵濮嬪寲錛屾墍浠ュ畨鍏ㄧ殑瀵瑰緟瀹冧滑鐨勬柟娉曞氨鏄鑻ユ棤鐫廣傚湪媧劇敓綾繪瀯閫犲嚱鏁拌繍琛屼箣鍓嶏紝涓涓璞′笉浼?xì)鎴愪皋Z竴涓淳鐢熺被瀵硅薄銆?br>
銆銆鍚屾牱鐨勫師鍥犱篃閫傜敤浜庢瀽鏋勮繃紼嬨備竴鏃︽淳鐢熺被鏋愭瀯鍑芥暟榪愯錛岃繖涓璞$殑媧劇敓綾繪暟鎹垚鍛樺氨琚涓烘湭瀹氫箟鐨勫鹼紝鎵浠?C++ 灝卞皢瀹冧滑瑙嗕負(fù)涓嶅啀瀛樺湪銆傚湪榪涘叆鍩虹被鏋愭瀯鍑芥暟鏃訛紝瀵硅薄灝辨垚涓轟竴涓熀綾誨璞★紝C++ 鐨勬墍鏈夐厤浠垛斺旇櫄鍑芥暟錛宒ynamic_casts 絳夆斺旈兘濡傛鐪嬪緟瀹冦?

ivy-jie 2009-05-18 17:26 鍙戣〃璇勮
]]>
铏氬嚱鏁板疄鐜版満鍒?/title><link>http://www.shnenglu.com/ivy-jie/articles/83250.html</link><dc:creator>ivy-jie</dc:creator><author>ivy-jie</author><pubDate>Mon, 18 May 2009 01:26:00 GMT</pubDate><guid>http://www.shnenglu.com/ivy-jie/articles/83250.html</guid><wfw:comment>http://www.shnenglu.com/ivy-jie/comments/83250.html</wfw:comment><comments>http://www.shnenglu.com/ivy-jie/articles/83250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivy-jie/comments/commentRss/83250.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivy-jie/services/trackbacks/83250.html</trackback:ping><description><![CDATA[    C++涓殑铏氬嚱鏁扮殑浣滅敤涓昏鏄疄鐜頒簡(jiǎn)澶氭佺殑鏈哄埗銆傚叧浜庡鎬侊紝綆鑰岃█涔嬪氨鏄敤鐖剁被鍨嬪埆鐨勬寚閽堟寚鍚戝叾瀛愮被鐨勫疄渚嬶紝鐒跺悗閫氳繃鐖剁被鐨勬寚閽堣皟鐢ㄥ疄闄呭瓙綾葷殑鎴愬憳鍑芥暟銆傝繖縐嶆妧鏈彲浠ヨ鐖剁被鐨勬寚閽堟湁“澶氱褰㈡?#8221;錛岃繖鏄竴縐嶆硾鍨嬫妧鏈傛墍璋撴硾鍨嬫妧鏈紝璇寸櫧浜?jiǎn)灏辨槸璇曞浘鋴社敤涓嶅彉鐨勪唬鐮佹潵瀹炵幇鍙彉鐨劷帡娉曘傛瘮濡傦細(xì)妯℃澘鎶鏈紝RTTI鎶鏈紝铏氬嚱鏁版妧鏈紝瑕佷箞鏄瘯鍥懼仛鍒板湪緙栬瘧鏃跺喅璁紝瑕佷箞璇曞浘鍋氬埌榪愯鏃跺喅璁?br>1 铏氬嚱鏁拌〃<br>    铏氬嚱鏁幫紙Virtual Function錛夋槸閫氳繃涓寮犺櫄鍑芥暟琛紙Virtual Table錛夋潵瀹炵幇鐨勩傜畝縐頒負(fù)V-Table銆?鍦ㄨ繖涓〃涓紝涓繪槸瑕佷竴涓被鐨勮櫄鍑芥暟鐨勫湴鍧琛紝榪欏紶琛ㄨВ鍐充簡(jiǎn)緇ф壙銆佽鐩栫殑闂錛屼繚璇佸叾瀹圭湡瀹炲弽搴斿疄闄呯殑鍑芥暟銆傝繖鏍鳳紝鍦ㄦ湁铏氬嚱鏁扮殑綾葷殑瀹炰緥涓繖涓〃琚垎閰嶅湪浜?榪欎釜瀹炰緥鐨勫唴瀛樹(shù)腑錛屾墍浠ワ紝褰撴垜浠敤鐖剁被鐨勬寚閽堟潵鎿嶄綔涓涓瓙綾葷殑鏃跺欙紝榪欏紶铏氬嚱鏁拌〃灝辨樉寰楃敱涓洪噸瑕佷簡(jiǎn)錛屽畠?yōu)鍍忎竴涓湴鍥句竴鏍鳳紝鎸囨槑浜?jiǎn)瀹為檯鎵搴旇璋冪敤鐨勫嚱鏁般? <p>    榪欓噷鎴戜滑鐫閲嶇湅涓涓嬭繖寮犺櫄鍑芥暟琛ㄣ傚湪C++鐨勬爣鍑嗚鏍艱鏄庝功涓鍒幫紝緙栬瘧鍣ㄥ繀闇瑕佷繚璇佽櫄鍑芥暟琛ㄧ殑鎸囬拡瀛樺湪浜庡璞″疄渚嬩腑鏈鍓嶉潰鐨勪綅緗紙榪欐槸涓轟簡(jiǎn)淇濊瘉姝g‘鍙栧埌铏氬嚱鏁扮殑鍋忕Щ閲忥級(jí)銆?榪欐剰鍛崇潃鎴戜滑閫氳繃瀵硅薄瀹炰緥鐨勫湴鍧寰楀埌榪欏紶铏氬嚱鏁拌〃錛岀劧鍚庡氨鍙互閬嶅巻鍏朵腑鍑芥暟鎸囬拡錛屽茍璋冪敤鐩稿簲鐨勫嚱鏁般?</p> 2 浠g爜錛?br>#include <stdio.h><br>#include <iostream.h><br>#include <stdlib.h><br>typedef void (*Fun) (void);<br>class Base{<br>public:<br> virtual void f() {cout<<"Base::f"<<endl;}<br> virtual void g() {cout<<"Base::g"<<endl;}<br> virtual void h() {cout<<"Base::h"<<endl;}<br>};<br>void main(int argc,char * argv[])<br>{<br>  Base b;<br>  Fun pFun = NULL;<br>  int *var1= (int *)&b;<br>  cout<<"铏氬嚱鏁拌〃鍦板潃:"<<var1<<endl; //(int*)(&b)<br>  int *var2 = (int*)*(int*)(&b);<br>  cout<<"铏氬嚱鏁拌〃-絎竴涓嚱鏁板湴鍧:"<< var2 << endl;//(int*)*(int*)(&b)<br>  //Invoke the first virtual function<br>  pFun = <span style="COLOR: red">(Fun)*((int*)*(int*)(&b)+0);</span> //f()<br>  pFun();<br>  pFun = (Fun)*((int*)*(int*)(&b)+1); //g()<br>  pFun();<br>  pFun = (Fun)*((int*)*(int*)(&b)+2); // h() <br>  pFun();<br>}<br>//緇撴灉<br>铏氬嚱鏁拌〃鍦板潃:0x0012FF7C<br>铏氬嚱鏁拌〃-絎竴涓嚱鏁板湴鍧:0x0042804C<br>Base::f<br>Base::g<br>Base::h<br> <img src ="http://www.shnenglu.com/ivy-jie/aggbug/83250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivy-jie/" target="_blank">ivy-jie</a> 2009-05-18 09:26 <a href="http://www.shnenglu.com/ivy-jie/articles/83250.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍑芥暟鎸囬拡瀹炵幇鍥炶皟http://www.shnenglu.com/ivy-jie/articles/83247.htmlivy-jieivy-jieMon, 18 May 2009 00:40:00 GMThttp://www.shnenglu.com/ivy-jie/articles/83247.htmlhttp://www.shnenglu.com/ivy-jie/comments/83247.htmlhttp://www.shnenglu.com/ivy-jie/articles/83247.html#Feedback0http://www.shnenglu.com/ivy-jie/comments/commentRss/83247.htmlhttp://www.shnenglu.com/ivy-jie/services/trackbacks/83247.html  p鏄寚鍚戞煇鍑芥暟鐨勬寚閽堬紝璇ュ嚱鏁版棤杈撳叆鍙傛暟錛岃繑鍥炲肩殑綾誨瀷涓簐oid銆傚乏杈瑰渾鎷姬閲屾槦鍙峰悗鐨勫氨鏄寚閽堝彉閲忓悕銆傛湁浜?jiǎn)鎸囬拡鍙橀噺渚垮彲浠ヨ祴鍊鹼紝鍊肩殑鍐呭鏄講鍚嶅尮閰嶇殑鍑芥暟鍚嶅拰榪斿洖綾誨瀷銆備緥濡傦細(xì)

void func() 
{
/* do something */

p = func; 

p鐨勮祴鍊煎彲浠ヤ笉鍚岋紝浣嗕竴瀹氳鏄嚱鏁扮殑鍦板潃錛屽茍涓旂講鍚嶅拰榪斿洖綾誨瀷鐩稿悓銆?br>
浼犻掑洖璋冨嚱鏁扮殑鍦板潃緇欒皟鐢ㄨ?br>
鐜板湪鍙互灝唒浼犻掔粰鍙︿竴涓嚱鏁幫紙璋冪敤鑰咃級(jí)- caller()錛屽畠?yōu)畣璋冪敤p鎸囧悜鐨勫嚱鏁幫紝鑰屾鍑芥暟鍚嶆槸鏈煡鐨勶細(xì)

void caller(void(*ptr)())
{
ptr(); /* 璋冪敤ptr鎸囧悜鐨勫嚱鏁?*/ 
}
void func();
int main()
{
p = func; 
caller(p); /* 浼犻掑嚱鏁板湴鍧鍒拌皟鐢ㄨ?*/
}

    濡傛灉璧嬩簡(jiǎn)涓嶅悓鐨勫肩粰p錛堜笉鍚屽嚱鏁板湴鍧錛夛紝閭d箞璋冪敤鑰呭皢璋冪敤涓嶅悓鍦板潃鐨勫嚱鏁般傝祴鍊煎彲浠ュ彂鐢熷湪榪愯鏃訛紝榪欐牱浣夸綘鑳藉疄鐜板姩鎬佺粦瀹氥?br>
璋冪敤瑙勮寖

    鍒扮洰鍓嶄負(fù)姝紝鎴戜滑鍙璁轟簡(jiǎn)鍑芥暟鎸囬拡鍙?qiáng)鍥炶皟鑰屾病鏈夊幓娉ㄦ剰ANSI C/C++鐨勭紪璇戝櫒瑙勮寖銆傝澶氱紪璇戝櫒鏈夊嚑縐嶈皟鐢ㄨ鑼冦傚鍦╒isual C++涓紝鍙互鍦ㄥ嚱鏁扮被鍨嬪墠鍔燺cdecl錛宊stdcall鎴栬卂pascal鏉ヨ〃紺哄叾璋冪敤瑙勮寖錛堥粯璁や負(fù)_cdecl錛夈侰++ Builder涔熸敮鎸乢fastcall璋冪敤瑙勮寖銆傝皟鐢ㄨ鑼冨獎(jiǎng)鍝嶇紪璇戝櫒浜х敓鐨勭粰瀹氬嚱鏁板悕錛屽弬鏁頒紶閫掔殑欏哄簭錛堜粠鍙沖埌宸︽垨浠庡乏鍒板彸錛夛紝鍫嗘爤娓呯悊璐d換錛堣皟鐢ㄨ呮垨鑰呰璋冪敤鑰咃級(jí)浠ュ強(qiáng)鍙傛暟浼犻掓満鍒訛紙鍫嗘爤錛孋PU瀵勫瓨鍣ㄧ瓑錛夈?br>
    灝嗚皟鐢ㄨ鑼冪湅鎴愭槸鍑芥暟綾誨瀷鐨勪竴閮ㄥ垎鏄緢閲嶈鐨勶紱涓嶈兘鐢ㄤ笉鍏煎鐨勮皟鐢ㄨ鑼冨皢鍦板潃璧嬪肩粰鍑芥暟鎸囬拡銆備緥濡傦細(xì)

// 琚皟鐢ㄥ嚱鏁版槸浠nt涓哄弬鏁幫紝浠nt涓鴻繑鍥炲?br>__stdcall int callee(int); 

// 璋冪敤鍑芥暟浠ュ嚱鏁版寚閽堜負(fù)鍙傛暟
void caller( __cdecl int(*ptr)(int)); 

// 鍦╬涓紒鍥懼瓨鍌ㄨ璋冪敤鍑芥暟鍦板潃鐨勯潪娉曟搷浣?br>__cdecl int(*p)(int) = callee; // 鍑洪敊


    鎸囬拡p鍜宑allee()鐨勭被鍨嬩笉鍏煎錛屽洜涓哄畠浠湁涓嶅悓鐨勮皟鐢ㄨ鑼冦傚洜姝や笉鑳藉皢琚皟鐢ㄨ呯殑鍦板潃璧嬪肩粰鎸囬拡p錛屽敖綆′袱鑰呮湁鐩稿悓鐨勮繑鍥炲煎拰鍙傛暟鍒椼?

ivy-jie 2009-05-18 08:40 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美国产大片| 欧美大色视频| 亚洲欧美日韩在线一区| 欧美日韩日日骚| 一本在线高清不卡dvd | 欧美jizzhd精品欧美巨大免费| 先锋影音国产一区| 揄拍成人国产精品视频| 欧美性色视频在线| 欧美国产视频一区二区| 亚洲欧美日韩中文在线制服| 亚洲第一成人在线| 欧美在线观看一区| 一区二区三区精品久久久| 国产综合激情| 国产亚洲一二三区| 中日韩在线视频| 在线电影国产精品| 国语自产精品视频在线看| 国产精品乱码人人做人人爱| 久久人人97超碰国产公开结果| 亚洲午夜精品福利| 亚洲综合成人在线| 久久激情五月婷婷| 亚洲精品三级| 久久婷婷人人澡人人喊人人爽| 中文精品视频一区二区在线观看| 国产精品永久在线| 欧美日韩国产精品| 销魂美女一区二区三区视频在线| 亚洲视频在线一区| 亚洲影视九九影院在线观看| 亚洲精品一区二区三| 99精品热6080yy久久| 99视频精品免费观看| 亚洲一区二区日本| 国产一区视频观看| 亚洲国产精品嫩草影院| 亚洲精品乱码久久久久久黑人 | 亚洲欧美亚洲| 亚洲欧美中文日韩v在线观看| 亚洲欧美日韩在线不卡| 久久频这里精品99香蕉| 国产精品福利在线观看网址| 极品裸体白嫩激情啪啪国产精品| 黑人巨大精品欧美一区二区小视频 | 欧美三级韩国三级日本三斤| 国产精品久久久久三级| 狠久久av成人天堂| 久久av一区二区| 翔田千里一区二区| 红桃av永久久久| 久久亚洲综合| 久久久福利视频| 一区二区三区在线视频免费观看| 久久精品理论片| 久久久久综合网| 亚洲精品久久久久久久久久久| 国产日韩亚洲| 欧美大色视频| 欧美视频一区在线观看| 欧美一区二区三区四区在线观看地址| 中文久久乱码一区二区| 国产丝袜一区二区| 欧美aaaaaaaa牛牛影院| 欧美区亚洲区| 欧美成人精品福利| 欧美日本国产视频| 久久精品中文字幕一区| 欧美高清一区| 欧美福利一区二区三区| 国产农村妇女毛片精品久久麻豆| 午夜精品在线| 欧美大片免费观看| 久久精品国产综合精品| 欧美成人在线免费观看| 久久免费视频网站| 欧美日韩你懂的| 亚洲国产日韩欧美在线动漫 | 一区二区三区日韩精品视频| 亚洲欧美在线aaa| 99精品视频一区| 久久色在线观看| 免费一区二区三区| 韩日在线一区| 欧美11—12娇小xxxx| 久久gogo国模啪啪人体图| 午夜免费日韩视频| 国产精品久久久久久亚洲调教 | 在线视频日本亚洲性| 欧美在线观看视频| 欧美视频一区在线| 亚洲在线电影| 久久久久久9999| 亚洲高清123| 欧美日韩国产色综合一二三四| 日韩视频在线一区| 亚洲一区二区三区成人在线视频精品| 欧美精品九九99久久| 中文精品一区二区三区| 久久久久一区| 一区二区高清在线| 国产偷国产偷亚洲高清97cao| 午夜在线a亚洲v天堂网2018| 欧美成人精品在线观看| 亚洲国产日韩欧美| 国产视频观看一区| 欧美www视频在线观看| 亚洲调教视频在线观看| 久久夜色精品国产| 亚洲视频在线一区| 在线欧美亚洲| 国产婷婷精品| 午夜激情一区| 香蕉视频成人在线观看| 亚洲福利av| 亚洲国产成人av| 国产综合欧美| 国产精品系列在线| 国产精品久久77777| 欧美久久久久免费| 欧美日韩亚洲精品内裤| 欧美人妖另类| 欧美日韩国产精品成人| 欧美区一区二区三区| 麻豆成人精品| 亚洲欧美激情一区二区| 国产手机视频精品| 国产精品久久久久高潮| 欧美极品在线播放| 老司机成人在线视频| 欧美一级午夜免费电影| 欧美在线观看网址综合| 欧美不卡视频| 亚洲国产日韩在线| 亚洲最新在线| 午夜视频久久久久久| 久久久久一区二区| 欧美精品一区二区三区很污很色的| 欧美大色视频| 欧美三日本三级少妇三99| 国产欧美日本一区视频| 国产在线不卡视频| 99re66热这里只有精品4| 中国亚洲黄色| 久久网站免费| 在线亚洲观看| 欧美成人免费在线视频| 国产精品日日做人人爱| 亚洲国产日韩欧美综合久久 | 亚洲视频综合在线| 亚洲图片自拍偷拍| 你懂的成人av| 影音先锋日韩精品| 国产精品久久久久9999| 国产亚洲一区二区在线观看| 99ri日韩精品视频| 久久一区二区三区四区五区| 亚洲永久免费精品| 欧美日韩亚洲视频| 亚洲理论在线| 亚洲电影免费在线观看| 欧美在线日韩精品| 国产欧美日韩亚洲| 欧美一区二区视频免费观看| 亚洲视频欧洲视频| 国产精品高清在线| 午夜在线观看欧美| 亚洲天堂偷拍| 国产日韩欧美一区在线| 欧美一区二区视频网站| 日韩视频国产视频| 一本一本久久a久久精品综合麻豆| 欧美电影免费观看大全| 136国产福利精品导航网址应用| 蜜臀久久99精品久久久久久9| 久久久久网站| 一本一本久久| 欧美一区二区视频网站| 亚洲黄网站在线观看| 亚洲尤物视频在线| 亚洲电影av| 亚洲精品视频一区二区三区| 欧美日韩精品一区二区在线播放 | 午夜精品视频网站| 久久久久高清| 亚洲激情网址| 亚洲精品欧美一区二区三区| 亚洲黄色一区| 欧美性色综合| 欧美国产日产韩国视频| 国产精品主播| 亚洲视频一二| 亚洲国产日本| 久久综合五月| 裸体一区二区三区| 国内精品久久久久影院优| 一本久久综合亚洲鲁鲁五月天| 黄色成人小视频| 午夜精品久久久久久久白皮肤|