10.1.1 Ä£°åµÄ¸ÅÊö
ÏÖÔÚµÄC++±àÒëÆ÷ʵÏÖÁËÒ»ÏîеÄÌØÐÔ£ºÄ£°å£¨Template£©£¬¼òµ¥µØ˵£¬Ä£°åÊÇÒ»ÖÖͨÓõÄÃèÊö»úÖÆ£¬Ò²¾Í
ÊÇ˵£¬Ê¹ÓÃÄ£°åÔÊÐíʹÓÃͨÓÃÀàÐÍÀ´¶¨Ò庯Êý»òÀàµÈ£¬ÔÚʹÓÃʱ£¬Í¨ÓÃÀàÐͿɱ»¾ßÌåµÄÀàÐÍ£¬Èçint¡¢doubleÉõÖÁÊÇÓû§×Ô¶¨ÒåµÄÀàÐÍÀ´´úÌ档ģ°åÒýÈëÒ»ÖÖȫеıà³Ì˼ά·½Ê½£¬³ÆΪ¡°·ºÐͱà³Ì¡±»ò¡°Í¨Óñà³Ì¡±¡£ÐÎÏóµØ˵£¬°Ñº¯Êý±ÈÓ÷Ϊһ¸öÓÎÏ·¹ý³Ì£¬º¯ÊýµÄÁ÷³Ì¾ÍÏ൱ÓÚÓÎÏ·¹æÔò£¬ÔÚÒÔÍùµÄº¯Êý¶¨ÒåÖУ¬×ÜÊÇÖ¸Ã÷²ÎÊýÊÇintÐÍ»¹ÊÇdoubleÐ͵ȵȣ¬Õâ¾ÍÏñÊÇΪÕÅÈý£¨ºÃ±ÈintÐÍ£©ºÍÀîËÄ£¨ºÃ±ÈdoubleÐÍ£©±ÈÈüÖƶ¨¹æÔò¡£¿ÉÈç¹ûÍõÎ壨char*ÐÍ£©ºÍÕÔÁù£¨boolÐÍ£©Òª±ÈÈü£¬»¹µÃÌṩһÌ׺¯ÊýµÄ¶¨Ò壬ÕâÏ൱ÓÚÓÖÖƶ¨ÁËÒ»´Î¹æÔò£¬ÏÔÈ»ÕâÊǺÜÂé·³µÄ¡£Ä£°åµÄµÄÒýÈë½â¾öÁËÕâÒ»ÎÊÌ⣬²»¹ÜÊÇ˺Í˱ÈÈü£¬¶¼°ÑËûÃǶ¨Òå³ÉAÓëB±ÈÈü£¬Öƶ¨ºÃÁËAÓëB±ÈÈüµÄ¹æÔò£¨¶¨ÒåÁ˹ØÓÚAºÍBµÄº¯Êý£©ºó£¬±ÈÈüʱֻҪ°ÑAÌæ»»³ÉÕÅÈý£¬°ÑBÌæ»»³ÉÀîËľͿÉÒÔÁË£¬´ó´ó¼ò»¯Á˳ÌÐò´úÂëÁ¿£¬Î¬³ÖÁ˽ṹµÄÇåÎú£¬´ó´óÌá¸ßÁ˳ÌÐòÉè¼ÆµÄЧÂÊ¡£¸Ã¹ý³Ì³ÆΪ¡°ÀàÐͲÎÊý»¯¡±
ÈçϳÌÐò³ÌÐòʾÀý10-1£¬ÊµÏÖµÄÊÇÏà¼ÓµÄ¹¦ÄÜ
int add(int x, int y)//¶¨ÒåÁ½¸öintÀàÐÍÏà¼ÓµÄº¯Êý { return x + y; }
double add(double x, double y) //ÖØÔØdoubleÀàÐÍ { return x + y; }
char* add(char* px, char* py)//ÖØÔØ×Ö·ûÊý×é { return strcat(px, py);//µ÷Óÿ⺯Êýstrcat } |
10.1.2 Ä£°åµÄ¶¨Òå
Ä£°åµÄÒýÈëʹµÃº¯Êý¶¨Òå°ÚÍÑÁËÀàÐ͵ÄÊø¸¿£¬´úÂë¸üΪ¸ßЧÁé»î¡£C£«£«ÖУ¬Í¨¹ýÏÂÊöÐÎʽ¶¨ÒåÒ»¸öÄ£°å£ºtemplate <class T>»òtemplate<typename T>ÔçÆÚÄ£°å¶¨ÒåʹÓõÄÊÇclass£¬¹Ø¼ü×ÖtypenameÊÇ×î½ü²Å¼ÓÈëµ½±ê×¼Öеģ¬Ïà±Èclass£¬typename¸üÈÝÒ×ÌåÏÖ
¡°ÀàÐÍ¡±µÄ¹Ûµã£¬ËäÈ»Á½¸ö¹Ø¼ü×ÖÔÚÄ£°å¶¨ÒåʱÊǵȼ۵ģ¬µ«´Ó´úÂë¼æÈݵĽǶȽ²£¬Ê¹ÓÃclass½ÏºÃһЩ¡£Ä£°åÓк¯ÊýÄ£°åºÍÀàÄ£°åÖ®·Ö¡£