|
 |
À¸Ä¿µ¼À¸ |
|
| |
|
|
|
|
 |
×ÊÁÏËÑË÷ |
|
| |
|
|
|
|
 |
ÈÈÃÅÎÄÕÂ |
|
| |
|
|
|
|
 |
×îÐÂÎÄÕ |
|
| |
|
|
|
| |
| |
|
|
|
| |
| C++×Ô¶¯»¯(Ä£°åÔª)±à³Ì»ù´¡ÓëÓ¦Óà |
|
#if 06yCLinuxÁªÃË 6yCLinuxÁªÃË ¡¡¡¡´ó¼ÒºÃ£¬ÔÚÕâÒ»ÀàµÄÎÄÕÂÖн«»áϵͳµÄ½éÉÜÄ£°åÔª±à³ÌµÄÏà¹Ø»ù´¡ÖªÊ¶¡£×îÖ÷ÒªµÄÊÇÕâÀàÎÄÕµÄÄ¿µÄ¾ÍÊÇÈò»ÊìϤģ°åÔªµÄC++ÃÔÃǾ¡¿ìµÄ½øÈ뵽ģ°åÔªµÄÆæÃîÊÀ½çÀïÃæÀ´£¬ËùÒÔÿһƪÎÄÕ¶¼½«Ö»»áÌÖÂÛÒ»¸ö»°Ì⣬¾¡¿ÉÄܵİÑÕâ¸ö»°Ìâ˵Çå³þÃ÷°×¾Í¿ÉÒÔÁË¡£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡ºÃÁË£¬ÑÔ¹éÕý´«¡£´ó¼Ò¶¼ÖªµÀC++ÊÇÒ»ÃǼÆËã»úÓïÑÔ£¬ÕâÒ»µãҲû´í£¬µ«ÊÇÄãÖªµÀC++ÀïÃæ»¹°üº¬ÁËÁíÍâÒ»ÖÖ×ÓÓïÑÔô£¿ºÇºÇ£¬¿ÖÅÂÖªµÀµÄÈ˾Ͳ»¶àÁË£¬»áÓõÄÈ˾͸üÉÙÁË¡£µ«ÊǼÈÈ»¾¹ýÁËÕâô¶àÄêµÄ·¢Õ¹£¬C++ÓïÑÔÀïÃæ³öÏÖÁËÕâÖÖ×ÓÓïÑÔ£¨Ä£°å£©×ÔÈ»ÓÐËüµÄ¸ùÔ´µÄ£¬ÕâÒ»µã²¢²»ÊDZ¾ÎÄÖн«ÒªÌÖÂ۵ģ¬Èç¹ûÏëÁ˽âC++µÄ·¢Õ¹Àý³Ì£¬¿ÉÒԲμûÏà¹ØµÄÎÄÏס£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡ÔÚ±¾ÎÄÖн«ÒªËµÃ÷µÄÎÊÌâÊÇ£ºÎªÊ²Ã´ËµC++Ä£°åÊÇÒ»ÖÖÓïÑÔÄØ£¿6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡ÎªÁ˻شðÕâ¸öÎÊÌ⣬Ê×ÏÈÐèÒª¿¼ÂÇÒ»ÏÂʲôÊǼÆËã»úÓïÑÔ£¬¹ØÓÚÕâ¸ö¾«È·µÄ¶¨Ò壬ºÜ¶àµÄ¼ÆËã»ú»ù´¡½Ì³ÌÉ϶¼ÓУ¬ÔÚÕâÀïÎÒ¸ø³öÒ»ÖֱȽÏյ͍Ò壺6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡Äܹ»ÔÚ¼ÆËã»úÉϱí´ïÑ¡Ôñ½á¹¹£¬Ñ»·½á¹¹£¬Í¬Ê±Äܹ»½øÐнøÐÐÕûÊýµÄËÄÔòÔËËãµÄÌåϵ¾ÍÊÇÒ»ÖÖ¼ÆËã»úÓïÑÔ¡£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡ºÜÏÔÈ»£¬C++×ÔÈ»ÊÇÒ»ÖÖ¼ÆËã»úÓïÑÔÁË£¬»¹ÓÐBasic£¬Fortran£¬PascalµÈµÈ¶¼ÊǼÆËã»úÓïÑÔ¡£Ö®ËùÒÔÌÖÂÛÕâô¶àµÄ¸ÅÄîÎÊÌâÊÇΪÁË˵Ã÷£ºÈçºÎÖ¤Ã÷C++µÄÄ£°åÓï·¨ÊÇÒ»ÖÖ¼ÆËã»úÓïÑÔ¡£ÓÖÒòΪģ°åÊÇC++ÓïÑÔµÄÒ»¸öÔªËØ£¬ËùÒÔÓÖ¿ÉÒÔ½«C++Ä£°åÓï·¨³ÆÎªC++µÄ¶þ¼¶ÓïÑÔ»òÕß×ÓÓïÑÔ¡£ÔÚ±¾ÎÄÖн«»áͨ¹ýʹÓÃÄ£°å·Ö±ðʵÏÖÕûÊýËÄÔòÔËË㣬ѡÔñ½á¹¹ÒÔ¼°Ñ»·½á¹¹À´Ö¤Ã÷C++Ä£°åÓï·¨¹¹³ÉÁËÒ»¸öÍêÕûµÄ¼ÆËã»úÓïÑÔ¡£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡ÁíÍâÌØ±ðÖµµÃ×¢ÒâµÄÊÇ£¬ÒòΪC++µÄÄ£°åÓïÑÔÊÇÔÚ±àÒëÆ÷±àÒëµÄʱºòÍê³ÉµÄ£¬ËùÒÔÓÖ³ÆÎª¾²Ì¬ÓïÑÔ£¬Í¨³£µÄC++ÓïÑÔÓÖ³ÆÎª¶¯Ì¬ÓïÑÔ»òÕßÔËÐÐʱÓïÑÔ¡£ÕýÊÇÒòΪģ°åÓïÑÔÊÇÔÚ±àÒëÆÚÍê³ÉµÄ£¬ËùÒÔÎÒÃÇ¿ÉÒÔ½èÖúÓÚÕâÖÖ±àÒëÆÚµÄ¼ÆËãʵÏÖ´úÂë×Ô¶¯Éú³ÉµÄÄ¿µÄ£¬´Ó¶øÊµÏÖC++×Ô¶¯»¯±à³Ì¡£ÕâÊǺóÐøµÄÎÄÕÂÖлáÏêϸÌÖÂ۵ġ£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË ¡¡¡¡Ê×ÏÈ¿´¿´£¬Ä£°åÊÇÈçºÎÍê³É±àÒëÆÚËÄÔò¼ÆËãµÄ¡£6yCLinuxÁªÃË ¡¡¡¡6yCLinuxÁªÃË #endif6yCLinuxÁªÃË 6yCLinuxÁªÃË #ifdef CODE1//±àÒëÆÚËÄÔò¼ÆËãµÄʾÀý´úÂë6yCLinuxÁªÃË #include 6yCLinuxÁªÃË template struct Add { enum{value = i+j}; };6yCLinuxÁªÃË template struct Sub { enum{value = i-j}; };6yCLinuxÁªÃË template struct Mul { enum{value = i*j}; };6yCLinuxÁªÃË template struct Div { enum{value = i/j}; };6yCLinuxÁªÃË int main()6yCLinuxÁªÃË {6yCLinuxÁªÃË std::cout << "4+2=" << Add<4,2>::value << std::endl;6yCLinuxÁªÃË std::cout << "4-2=" << Sub<4,2>::value << std::endl;6yCLinuxÁªÃË std::cout << "4*2=" << Mul<4,2>::value << std::endl;6yCLinuxÁªÃË std::cout << "4/2=" << Div<4,2>::value << std::endl;6yCLinuxÁªÃË //ΪÁËÖ¤Ã÷ÉÏÃæµÄ¼ÆËãÊÇÔÚ±àÒëÆÚ½øÐеģ¬ÎÒÃDZàдÏÂÃæµÄ´úÂë²âÊÔ6yCLinuxÁªÃË //½«Ä£°åÖµ×÷ΪÊý×鶨ÒåʱʹÓõIJÎÊý¾Í¿ÉÒÔÖ¤Ã÷ÊÇÔÚ±àÒëÆÚÖ´ÐеļÆËã:)6yCLinuxÁªÃË int a[Add<4,2>::value];//Õâô¶¨Ò岢ûÓдí6yCLinuxÁªÃË int b[Sub<4,2>::value];//Õâô¶¨Ò岢ûÓдí6yCLinuxÁªÃË int c[Mul<4,2>::value];//Õâô¶¨Ò岢ûÓдí6yCLinuxÁªÃË int d[Div<4,2>::value];//Õâô¶¨Ò岢ûÓдí6yCLinuxÁªÃË std::cout << sizeof(a)/sizeof(int) << std::endl;6yCLinuxÁªÃË std::cout << sizeof(b)/sizeof(int) << std::endl;6yCLinuxÁªÃË std::cout << sizeof(c)/sizeof(int) << std::endl;6yCLinuxÁªÃË std::cout << sizeof(d)/sizeof(int) << std::endl;6yCLinuxÁªÃË return 0;6yCLinuxÁªÃË }6yCLinuxÁªÃË #endif//CODE16yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË //³ÌÐòÔËÐнá¹ûÈçÏÂËùʾ:6yCLinuxÁªÃË /*****************************************6yCLinuxÁªÃË 4+2=66yCLinuxÁªÃË 4-2=26yCLinuxÁªÃË 4*2=86yCLinuxÁªÃË 4/2=26yCLinuxÁªÃË 66yCLinuxÁªÃË 26yCLinuxÁªÃË 86yCLinuxÁªÃË 26yCLinuxÁªÃË ******************************************/6yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË #if 06yCLinuxÁªÃË 6yCLinuxÁªÃË ´Ó´úÂëCODE1ÖпÉÒÔ¿´³öʹÓÃÕûÐÍÄ£°å²ÎÊýµÄÄ£°åÊÇ¿ÉÒÔʵÏÖ±àÒëÆÚ¼ÆËãµÄ£¬ÔÚÕâÀ6yCLinuxÁªÃË Ö¤Ã÷ÁËÕâ¸ö¼ÆËã¹ý³ÌÊÇÔÚ±àÒëÆÚÍê³ÉµÄ¡£6yCLinuxÁªÃË 6yCLinuxÁªÃË ºÃÁË£¬ÏÖÔÚ¿´¿´ÈçºÎʹÓÃC++Ä£°åʵÏÖÑ¡Ôñ½á¹¹£¬¼û´úÂëCODE2£º6yCLinuxÁªÃË 6yCLinuxÁªÃË #endif6yCLinuxÁªÃË #ifdef CODE2//±àÒëÆÚʵÏÖÑ¡ÔñµÄʾÀý´úÂë6yCLinuxÁªÃË #include 6yCLinuxÁªÃË template 6yCLinuxÁªÃË struct IF6yCLinuxÁªÃË {6yCLinuxÁªÃË typedef Then result;//½«ThenÀàÐÍ×÷ΪÌõ¼þÎªÕæµÄ·µ»ØÖµ£¨·µ»ØÖµÎªÀàÐÍ£©6yCLinuxÁªÃË };6yCLinuxÁªÃË template6yCLinuxÁªÃË struct IF6yCLinuxÁªÃË {6yCLinuxÁªÃË typedef Else result;//½«ElseÀàÐÍ×÷ΪÌõ¼þΪ¼ÙµÄ·µ»ØÖµ£¨·µ»ØÖµÎªÀàÐÍ£©6yCLinuxÁªÃË };6yCLinuxÁªÃË //ΪÁ˲âÊÔÕâ¸öIFÑ¡Ôñ½á¹¹£¬ÐèÒªÏÂÃæµÄÁ½¸öÀàÐͶ¨Ò壺6yCLinuxÁªÃË struct True {static void Print(){std::cout << "Õæ" << std::endl;}};6yCLinuxÁªÃË struct False{static void Print(){std::cout << "¼Ù" << std::endl;}};6yCLinuxÁªÃË int main()6yCLinuxÁªÃË {6yCLinuxÁªÃË IF<1==1,True,False>::result::Print();6yCLinuxÁªÃË IF<1!=1,True,False>::result::Print();6yCLinuxÁªÃË return 0;6yCLinuxÁªÃË }6yCLinuxÁªÃË #endif//CODE26yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË //³ÌÐòÔËÐнá¹ûÈçÏÂËùʾ:6yCLinuxÁªÃË /**********************************************6yCLinuxÁªÃË Õæ6yCLinuxÁªÃË ¼Ù6yCLinuxÁªÃË ***********************************************/6yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË #if 06yCLinuxÁªÃË 6yCLinuxÁªÃË ´ÓCODE2ÖпÉÒÔ¿´³ö£¬ÕâÀï²Ù×÷µÄ¶ÔÏóÊÇÀàÐÍ£¬¶øCODE1ÖеIJÙ×÷¶ÔÏóÊÇÕûÊý£¬µ½ÁËÕâ6yCLinuxÁªÃË Àï¿ÉÒÔ×ܽáÈçÏ£ºC++Ä£°åÔª±à³ÌÖеIJÙ×÷¶ÔÏóÖ»ÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÕûÐÎÊý£¬°üÀ¨bool£¬char6yCLinuxÁªÃË £¬int£¬long£¬(signed unsigned)¶¼¿ÉÒÔ£¬ËüÃǶ¼¿ÉÒÔµ±×÷ÕûÊýʹÓ㬸³ÖµºÍ±£´æ½á¹ûµÄ6yCLinuxÁªÃË ·½Ê½¶¼ÊÇͨ¹ýö¾Ù±äÁ¿À´ÊµÏÖ£»ÁíÒ»ÖÖ¾ÍÊÇÀàÐÍÁË£¬¸³ÖµºÍ±£´æ½á¹û¶¼ÊÇͨ¹ýtypedefÀ´Êµ6yCLinuxÁªÃË Ïֵġ£ÀýÈçCODE2Öн«IFµÄÑ¡Ôñ½á¹ûÒÔResultµÄ·½Ê½±£´æ×÷Ϊ½á¹û¾ÍÊÇͨ¹ýtypedefʵÏֵġ£6yCLinuxÁªÃË 6yCLinuxÁªÃË ÔÙÀ´¿´¿´Ñ»·½á¹¹£º6yCLinuxÁªÃË 6yCLinuxÁªÃË #endif6yCLinuxÁªÃË 6yCLinuxÁªÃË #ifdef CODE3//±àÒëÆÚʵÏÖÑ»·µÄʾÀý´úÂë6yCLinuxÁªÃË #include 6yCLinuxÁªÃË //ΪÁ˼òµ¥²ÉÓÃÒ»¸ö½×³Ë×÷ΪÀý×Ó£¬ÒòΪÈç¹ûÓÃÆÕͨµÄC++Óï·¨À´ÊµÏֽ׳˺¯ÊýµÄ»°ÐèÒª6yCLinuxÁªÃË //Ò»¸öÑ»·½á¹¹µÄ£¬ÕâÀï²ÉÓÃÄ£°åµÝ¹éµÄ·½Ê½ÊµÏÖÁËÕâÖֽ׳ˣ¬Ò²¾ÍʵÏÖÁËÒ»ÖÖÌØÊâµÄ6yCLinuxÁªÃË //Ñ»·½á¹¹¡£6yCLinuxÁªÃË template struct Power {6yCLinuxÁªÃË enum{value=n*Power::value}; //Ñ»·µÝ¹é¹ý³Ì6yCLinuxÁªÃË };6yCLinuxÁªÃË template<> struct Power<0> {6yCLinuxÁªÃË enum{value=1}; //0µÄ½×³ËÊÇ1£¬Ò²ÊÇÑ»·µÄÖÕÖ¹Ìõ¼þ6yCLinuxÁªÃË };6yCLinuxÁªÃË int main()6yCLinuxÁªÃË {6yCLinuxÁªÃË int a[Power<5>::value];//ͬÑùÓÃÊý×é²ÎÊýÀ´ÅжÏÊÇ·ñÔÚ±àÒëÆÚÍê³É¼ÆËã6yCLinuxÁªÃË std::cout << sizeof(a)/sizeof(int) << std::endl;6yCLinuxÁªÃË return 0;6yCLinuxÁªÃË }6yCLinuxÁªÃË #endif//CODE36yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË //³ÌÐòÔËÐнá¹ûÈçÏÂËùʾ:6yCLinuxÁªÃË /*******************************************6yCLinuxÁªÃË 1206yCLinuxÁªÃË *******************************************/6yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË #if 06yCLinuxÁªÃË 6yCLinuxÁªÃË ´ÓCODE3ÖÐÎÒÃÇ¿ÉÒÔ¿´³öPowerÊÇͨ¹ýÄ£°åµÝ¹éµÄ·½Ê½ÊµÏÖÑ»·µÄ£¬¶øÇÒÕâ¸öÑ»·¹ý³Ì6yCLinuxÁªÃË ÊÇÔÚ±àÒëÆÚÍê³ÉµÄ¡£µ½ÁËÕâÀï¿ÉÒÔ×ܽá³ö£ºC++Ä£°åÔª±à³ÌÖÐʵÏÖÑ»·µÄ·½Ê½Ö»ÓÐÒ»ÖÖ£¬ÄÇ6yCLinuxÁªÃË ¾ÍÊÇÄ£°åµÝ¹éʵÏÖÑ»·¡£ËäÈ»ÕâÀïµÄPowerµÄÑ»·²»Ôõôֱ½Ó£¬µ«ÊÇËüȷȷʵʵÊÇÒ»¸öÑ»·6yCLinuxÁªÃË ½á¹¹£¬Ö»²»¹ýÊÇÒ»¸ö·Ç³£ÌØÊâµÄÑ»·½á¹¹¡£Êµ¼ÊÉϲÉÓÃÄ£°åµÝ¹éµÄ·½·¨¿ÉÒÔʵÏÖÆÕͨC++Óï6yCLinuxÁªÃË ·¨ÀïÃæµÄforÑ»·£¬whileÑ»·£¬do-whileÑ»·ÕâЩͨÓõÄÑ»·½á¹¹¡£6yCLinuxÁªÃË 6yCLinuxÁªÃË µ½Ä¿Ç°ÎªÖ¹£¬ÒѾ³É¹¦µÄÖ¤Ã÷ÁËC++Ä£°åÊÇÒ»¸öÍêÕûµÄ¼ÆËã»úÓïÑÔ¡£¼ÈÈ»ÊÇÒ»ÃÅÓïÑÔ£¬6yCLinuxÁªÃË µ±È»¿ÉÒÔ×öÐíÐí¶à¶àµÄÊÂÇ飬Õâ¾ÍÔÚÓÚÿ¸öÈ˵ķ¢»ÓÁË¡£ºÃÁË£¬ÔÚ±¾ÎĵÄ×îºó¸ø³öÒ»¸öͨ6yCLinuxÁªÃË ÓõÄLOOPÑ»·×÷Ϊ±¾ÎĵĽáÊø£¬Õâ¸öLOOPÑ»·¿ÉÒÔ½øÐмòµ¥µÄÑ»·Ëã·¨Éè¼ÆÁË£¬ÏÂÃæµÄÀý6yCLinuxÁªÃË ×ÓÖн«»á˵Ã÷ÕâÒ»µã£º6yCLinuxÁªÃË 6yCLinuxÁªÃË #endif6yCLinuxÁªÃË #ifdef CODE46yCLinuxÁªÃË #include 6yCLinuxÁªÃË template void print()6yCLinuxÁªÃË {//ÕâÀïµÄnÊDZàÒëÆÚµÄ½á¹û£¬¿ÉÒÔÓÃÀ´¶¨ÒåÊý×éµÄ6yCLinuxÁªÃË int a[n+1];//Õâô×öÊÇΪÁËÖ¤Ã÷nÊDZàÒëÆÚ³£Á¿£¬Í¬Ê±±ÜÃâ³öÏÖÁã¸öÔªËØµÄÊý×é6yCLinuxÁªÃË std::cout << sizeof(a)/sizeof(int)-1 << " " ;6yCLinuxÁªÃË }6yCLinuxÁªÃË template struct LOOP6yCLinuxÁªÃË {6yCLinuxÁªÃË static void execute(){LOOP::execute();print();}6yCLinuxÁªÃË };6yCLinuxÁªÃË template <>struct LOOP<0>//Ñ»·ÖÕÖ¹Ìõ¼þ6yCLinuxÁªÃË {6yCLinuxÁªÃË static void execute(){print<0>();}6yCLinuxÁªÃË };6yCLinuxÁªÃË int main()6yCLinuxÁªÃË {6yCLinuxÁªÃË LOOP<5>::execute();6yCLinuxÁªÃË return 0;6yCLinuxÁªÃË }6yCLinuxÁªÃË #endif//CODE46yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË //³ÌÐòÔËÐнá¹ûÈçÏÂËùʾ:6yCLinuxÁªÃË /**************************************6yCLinuxÁªÃË 0 1 2 3 4 5 6yCLinuxÁªÃË ***********************************************/6yCLinuxÁªÃË ////////////////////////////////////////////////////////////////////////////////6yCLinuxÁªÃË #if 06yCLinuxÁªÃË 6yCLinuxÁªÃË ´ÓCODE4ÖпÉÒÔ¿´³ö£¬Õâ¸ö¾²Ì¬LOOPÑ»·ÊÇÒ»¸öÏà¶ÔÀ´ËµÍ¨ÓõÄÑ»·´úÂ룬ֻÐèÒª½«×Ô6yCLinuxÁªÃË ¼ºµÄ¹¦ÄÜ´úÂëдÈëµ½Ò»¸öº¯Êý(print)ÖоͿÉÒÔʵÏÖ¾²Ì¬Ñ»·ÁË£¬¸üÖØÒªµÄÊÇ£¬Õâ¸ö¾²Ì¬6yCLinuxÁªÃË LOOPÑ»·ÊµÏÖÁ˾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëµÄÁ¬½Ó£¬Òò´ËÓÃ;¸ü¼Ó¹ã·º£¬Ö÷Òª¿ÉÒÔÓÃÀ´²úÉú´úÂë6yCLinuxÁªÃË ¡£¹ØÓÚÈçºÎ²úÉú´úÂ룬ÒÔ¼°ÈçºÎʹÓý«ÊDZ¾ÀàÎÄÕµĺóÐøÎÄÕÂÌÖÂÛµÄÄÚÈÝ¡
LinuxÁªÃËÊÕ¼¯ÕûÀí ,תÌùÇë±êÃ÷ÔʼÁ´½Ó,ÈçÓÐÈκÎÒÉÎÊ»¶ÓÀ´±¾Õ¾LinuxÂÛ̳ÌÖÂÛ |
|
|
|
|
|