¿ìËÙÒµÎñͨµÀ

C++ѧϰժҪ֮°Ë£ºÄ£°å

×÷Õß ØýÃû¼¼Êõ À´Ô´ ³ÌÐòÉè¼Æ ä¯ÀÀ ·¢²¼Ê±¼ä 2012-06-29

Ä£°å£¨template£©ÀûÓÃÒ»ÖÖÍêȫͨÓõķ½·¨À´Éè¼Æº¯Êý»òÀà¶ø²»±ØÔ¤ÏÈ˵Ã÷½«±»Ê¹ÓõÄÿ¸ö¶ÔÏóµÄÀà ÐÍ£¬ÀûÓÃÄ£°å¹¦ÄÜ¿ÉÒÔ¹¹ÔìÏà¹ØµÄº¯Êý»òÀàµÄϵÁУ¬Òò´ËÄ£°åÒ²¿É³ÆΪ²ÎÊý»¯µÄÀàÐÍ¡£ÔÚC++ÓïÑÔÖУ¬Ä£ °å¿É·ÖΪÀàÄ£°å£¨class template£©ºÍº¯ÊýÄ£°å£¨function template£©¡£

ÔÚ³ÌÐòÖÐ˵Ã÷ÁËÒ»¸öº¯ ÊýÄ£°åºó£¬±àÒëϵͳ·¢ÏÖÓÐÒ»¸öÏàÓ¦µÄº¯Êýµ÷ÓÃʱ£¬½«¸ù¾Ýʵ²ÎÖеÄÀàÐÍÀ´È·ÈÏÊÇ·ñÆ¥Å亯ÊýÄ£°åÖжÔÓ¦ µÄÐβΣ¬È»ºóÉú³ÉÒ»¸öÖØÔغ¯Êý¡£¸ÃÖØÔغ¯ÊýµÄ¶¨ÒåÌåÓ뺯ÊýÄ£°åµÄº¯Êý¶¨ÒåÌåÏàͬ£¬³Æ֮Ϊģ°åº¯Êý£¨ template function£©¡£

º¯ÊýÄ£°åÓëÄ£°åº¯ÊýµÄÇø±ðÊÇ£ºº¯ÊýÄ£°åÊÇÄ£°åµÄ¶¨Ò壬¶¨ÒåÖÐÓõ½Í¨Óà ÀàÐͲÎÊý¡£Ä£°æº¯ÊýÊÇʵʵÔÚÔڵĺ¯Êý¶¨Ò壬ËüÓɱàÒëϵͳÔÚÓöµ½¾ßÌ庯Êýµ÷ÓÃʱËù²úÉú£¬¾ßÓгÌÐò´úÂë ¡£

ͬÑù£¬ÔÚ˵Ã÷ÁËÒ»¸öÀàÄ£°åÖ®ºó£¬¿ÉÒÔ´´½¨ÀàÄ£°åµÄʵÀý£¬¼´Éú³ÉÄ£°åÀà¡£

ÀàÄ£°åÓëÃþ °åÀàµÄÇø±ðÊÇ£ºÀàÄ£°åÊÇÄ£°åµÄ¶¨Ò壬²»ÊÇÒ»¸öʵʵÔÚÔÚµÄÀ࣬¶¨ÒåÖÐÓõ½Í¨ÓÃÀàÐͲÎÊý£»Ä£°åÀàÊÇʵʵ ÔÚÔÚµÄÀඨÒ壬ÊÇÀàÄ£°åµÄʵÀý¡£

1.º¯ÊýÄ£°å

ͨ¹ýÇ°Ãæ֪ʶµÄѧϰ¿ÉÖª£¬ÔÚËù¶¨ÒåµÄº¯Êý ÖУ¬º¯ÊýÐβεÄÀàÐÍÊǹ̶¨µÄ£¬µ±µ÷Óú¯Êýʱ£¬Êµ²ÎµÄÀàÐÍÒªÓë±»µ÷º¯ÊýµÄÐβÎÀàÐͱ£³ÖÒ»Ö£¬·ñÔò»á³ö ÏÖÀàÐͲ»Ò»ÖµĴíÎó¡£Òò´Ë£¬¶ÔÓÚ¹¦ÄÜÏàͬ¶øÖ»ÊDzÎÊýµÄÀàÐͲ»Í¬µÄÇé¿ö£¬Ò²±ØÐ붨Ò岻ͬµÄº¯ÊýÀ´·Ö±ð Íê³ÉÏàÓ¦µÄ¹¦ÄÜ£¬ÕâÏÔÈ»ÊǺܲ»Áé»îµÄ¡£

C++ÓïÑÔÖÐÌṩµÄº¯ÊýÄ£°å¹¦ÄܾÍÊÇΪ½â¾öÒÔÉÏÎÊÌâ¶øÌá ³öµÄ¡£C++ÓïÑÔÌṩµÄº¯ÊýÄ£°å¿ÉÒÔ¶¨ÒåÒ»¸ö¶ÔÈκÎÀàÐͱäÁ¿¶¼¿É½øÐвÙ×÷µÄº¯Êý£¬´Ó¶ø´ó´óÔöÇ¿Á˺¯Êý Éè¼ÆµÄͨÓÃÐÔ¡£ÒòΪÆÕͨº¯ÊýÖ»ÄÜ´«µÝ±äÁ¿²ÎÊý£¬¶øº¯ÊýÄ£°åÈ´ÌṩÁË´«µÝÀàÐ͵ĻúÖÆ¡£

ÔÚC++Óï ÑÔÖУ¬Ê¹Óú¯ÊýÄ£°åµÄ·½·¨ÊÇÏÈ˵Ã÷º¯ÊýÄ£°å£¬È»ºóʵÀý»¯³ÉÏàÓ¦µÄÄ£°åº¯Êý½øÐе÷ÓÃÖ´ÐС£

º¯ ÊýÄ£°åµÄÒ»°ã˵Ã÷ÐÎʽÈçÏ£º

template <ÀàÐÍÐβαí>

·µ»ØÖµÀàÐÍ º¯ÊýÃû£¨ÐÎ²Î±í £©

{

//º¯Êý¶¨ÒåÌå

}

ÔÚÉÏÃæµÄ¶¨ÒåÐÎʽÖУ¬<²ÎÊýÐβαí>¿ÉÒÔÓÐÒ»µ½ Èô¸É¸öÐβΣ¬¸÷ÐβÎÇ°±ØÐë¼ÓÉÏclass¹Ø¼ü×Ö£¬±íʾ´«µÝÀàÐÍ£¬µ±Óжà¸öÐβÎʱ£¬¸÷ÐβμäÓöººÅ·Ö¸ô¡£ ´ÓÖпÉÒÔ¿´³ö£¬<ÀàÐÍÐβαí>ÖеÄÿ¸öÐβξͱíʾÁËÒ»ÖÖÊý¾ÝÀàÐÍ¡£“Ðβαí”ÖÐÖÁÉÙ ÓÐÒ»¸öÐβεÄÀàÐͱØÐëÓÃ<ÀàÐÍÐβαí>ÖеÄÐβÎÀ´¶¨Òå¡£

º¯ÊýÄ£°åÖ»ÊÇ˵Ã÷£¬²»ÄÜÖ±½ÓÖ´ ÐУ¬ÐèҪʵÀý»¯ÎªÄ£°åº¯Êýºó²ÅÄÜÖ´ÐС£µ±±àÒëϵͳ·¢ÏÖÓÐÒ»¸öº¯Êýµ÷Ó㺺¯ÊýÃû£¨Êµ²Î±í£©£»Ê±£¬½«¸ù ¾Ý“ʵ²Î±í”ÖеÄʵ²ÎµÄÀàÐͺÍÒѶ¨ÒåµÄº¯ÊýÄ£°åÉú³ÉÒ»¸öÖØÔغ¯Êý¼´Ä£°åº¯Êý¡£¸ÃÄ£°åº¯Êý µÄ¶¨ÒåÌåÓ뺯ÊýÄ£°åµÄ¶¨ÒåÌåÏàͬ£¬¶ø“Ðβαí”ÖеÄÀàÐÍÔòÒԓʵ²Î±í”ÖеÄʵ ¼ÊÀàÐÍΪÒÀ¾Ý¡£

2.ÀàÄ£°å

ÀàÄ£°åʵ¼ÊÉϾÍÊǺ¯ÊýÄ£°åµÄÍƹ㡣

˵Ã÷ÀàÄ£°åµÄÒ»°ã ¸ñʽΪ£º

template <ÀàÐÍÐβαí>

class ÀàÄ£°åÃû

{

private£º

˽ÓгÉÔ±¶¨Òå

protected£º

±£»¤³ÉÔ±¶¨Òå

public£º

¹«ÓгÉÔ±¶¨Òå

}£»

£¨1£©<ÀàÐÍÐβαí>ÖпÉÒÔ°üÀ¨Ò»µ½Èô¸É¸öÐβΣ¬ÕâЩÐβμȿÉÒÔÊÇ“Àà ÐÍÐβΔ£¬Ò²¿ÉÒÔÊÇ“±í´ïʽÐβΔ¡£Ã¿¸öÀàÐÍÐβÎÇ°±ØÐë¼Óclass¹Ø¼ü×Ö£¬±íʾ¶ÔÀàÄ£ °å½øÐÐʵÀý»¯Ê±´ú±íijÖÖÊý¾ÝÀàÐÍ£¬Ò²¾ÍÊÇ˵£¬ÀàÐÍÐβÎÊÇÔÚÀàÄ£°åʵÀý»¯Ê±´«µÝÊý¾ÝÀàÐÍÓõģ»±í´ïʽ ÐβεÄÀàÐÍÊÇijÖÖ¾ßÌåµÄÊý¾ÝÀàÐÍ£¬µ±¶ÔÀàÄ£°å½øÐÐʵÀý»¯Ê±£¬¸øÕâЩ²ÎÊýÌṩµÄÊǾßÌåµÄÊý¾Ý£¬Ò²¾ÍÊÇ Ëµ£¬±í´ïʽÐβÎÊÇÓÃÀ´´«µÝ¾ßÌåÊý¾ÝµÄ¡£µ±<ÀàÐÍÐβαí>ÖеIJÎÊýÓжà¸öʱ£¬ÐèÓöººÅ¸ô¿ª¡£È磺

template <class arg1£¬int arg2£¬class arg3>

class myclass

{

//ÀàµÄ¶¨ÒåÌå

}£»

´Ë´¦¶¨ÒåµÄÀàÄ£°åÃûÊÇmyclass£¬ËüÓÐÈý¸ö²ÎÊýarg1¡¢arg2ºÍ arg3£¬ÆäÖÐarg1ºÍarg3ÊÇÀàÐÍÐβΣ¬ÔÚÀàÄ£°åʵÀý»¯Ê±ÓÃÓÚ´«µÝÊý¾ÝÀàÐÍ£¬arg2ÊDZí´ïʽÐβΣ¬ÓÃÓÚÔÚÀà Ä£°åʵÀý»¯Ê±´«µÝ¾ßÌåÊý¾Ý¡£

£¨2£©ÀàÄ£°åÖгÉÔ±º¯Êý¿ÉÒÔ·ÅÔÚÀàÄ£°åµÄ¶¨ÒåÌåÖУ¨´ËʱÓëÀàÖÐµÄ ³ÉÔ±º¯ÊýµÄ¶¨Òå·½·¨Ò»Ö£©¶¨Ò壬Ҳ¿ÉÒÔ·ÅÔÚÀàÄ£°åµÄÍⲿÀ´¶¨Ò壬´Ëʱ³ÉÔ±º¯ÊýµÄ¶¨Òå¸ñʽÈçÏ£º

template <ÀàÐÍÐβαí>

º¯ÊýÖµµÄ·µ»ØÀ´ÐÔ ÀàÄ£°åÃû<ÀàÐÍÃû±í>£º£º³ÉÔ±º¯ Êý£¨ÐβΣ©

{ º¯ÊýÌå¡¡¡¡ }

ÆäÖУºÀàÄ£°åÃû¼´ÊÇÀàÄ£°åÖж¨ÒåµÄÃû³Æ£»

ÀàÐÍÃû±í ¼´ÊÇÀàÄ£°å¶¨ÒåÖеÄ<ÀàÐÍÐβαí>ÖеÄÐβÎÃû¡£

£¨3£©ÀàÄ£°å¶¨ÒåÖ»ÊǶÔÀàµÄÃèÊö£¬Ëü±¾Éí »¹²»ÊÇÒ»¸öʵʵÔÚÔÚµÄÀ࣬ÊÇÀàÄ£°å¡£

£¨4£©ÀàÄ£°å²»ÄÜÖ±½ÓʹÓ㬱ØÐëÏÈʵÀý»¯ÎªÏàÓ¦µÄÄ£°åÀà £¬¶¨ÒåÄ£°åÀàµÄ¶ÔÏ󣨼´ÊµÀý£©ºó£¬²Å¿ÉʹÓ᣿ÉÒÔÓÃÒÔÏ·½Ê½´´½¨ÀàÄ£°åµÄʵÀý¡£

ÀàÄ£°åÃû <ÀàÐÍʵ²Î±í> ¶ÔÏóÃû±í£»

´Ë´¦µÄ<ÀàÐÍʵ²Î±í>ÒªÓë¸ÃÄ£°åÖеÄ<ÀàÐÍÐβαí> Æ¥Å䣬Ҳ¾ÍÊÇ˵£¬ÊµÀý»¯ÖÐËùÓõÄʵ²Î±ØÐëºÍÀàÄ£°åÖж¨ÒåµÄÐβξßÓÐͬÑùµÄ˳ÐòºÍÀàÐÍ£¬·ñÔò»á²úÉú´í Îó¡£

Ïà¹ØÎÄÕÂ

C++ѧϰժҪ֮¶þ£º¹¹Ô캯ÊýºÍÎö¹¹º¯Êý

http://www.bianceng.cn/Programming/cplus/200911/12302.htm

C++ѧϰժҪ֮һ£ºÀàºÍ¶ÔÏó

http://www.bianceng.cn/Programming/cplus/200911/12301.htm

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

·ÖÏíµ½£º ¸ü¶à

Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ