°®°®Ð¡ËµÍø > ÆäËûµç×ÓÊé > ¸ßÖÊÁ¿c++±à³ÌÖ¸ÄÏ >

µÚ8ÕÂ

¸ßÖÊÁ¿c++±à³ÌÖ¸ÄÏ-µÚ8ÕÂ

С˵£º ¸ßÖÊÁ¿c++±à³ÌÖ¸ÄÏ ×ÖÊý£º ÿҳ3500×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡



ªÏú¡£Õâ¸ö¹ý³ÌÓëÔ¤´¦ÀíÓÐÏÔÖøµÄ²»Í¬£¬ÒòΪԤ´¦ÀíÆ÷²»ÄܽøÐÐÀàÐÍ°²È«¼ì²é£¬»òÕß½øÐÐ×Ô¶¯ÀàÐÍת»»¡£¼ÙÈçÄÚÁªº¯ÊýÊdzÉÔ±º¯Êý£¬¶ÔÏóµÄµØÖ·£¨this£©»á±»·ÅÔÚºÏÊʵĵط½£¬ÕâÒ²ÊÇÔ¤´¦ÀíÆ÷°ì²»µ½µÄ¡£
¡¡¡¡C£«£«¡¡ÓïÑԵĺ¯ÊýÄÚÁª»úÖƼȾ߱¸ºê´úÂëµÄЧÂÊ£¬ÓÖÔö¼ÓÁË°²È«ÐÔ£¬¶øÇÒ¿ÉÒÔ×ÔÓɲÙ×÷ÀàµÄÊý¾Ý³ÉÔ±¡£ËùÒÔÔÚC£«£«¡¡³ÌÐòÖУ¬Ó¦¸ÃÓÃÄÚÁªº¯ÊýÈ¡´úËùÓкê´úÂ룬¡¨¶ÏÑÔassert¡¨¿ÖÅÂÊÇΨһµÄÀýÍâ¡£assertÊǽöÔÚDebug°æ±¾Æð×÷Óõĺ꣬ËüÓÃÓÚ¼ì²é¡¨²»Ó¦¸Ã¡¨·¢ÉúµÄÇé¿ö¡£ÎªÁ˲»ÔÚ³ÌÐòµÄDebug°æ±¾ºÍRelease°æ±¾ÒýÆð²î±ð£¬assert²»Ó¦¸Ã²úÉúÈκθ±×÷Óá£Èç¹ûassertÊǺ¯Êý£¬ÓÉÓÚº¯Êýµ÷ÓûáÒýÆðÄÚ´æ¡¢´úÂëµÄ±ä¶¯£¬ÄÇô½«µ¼ÖÂDebug°æ±¾ÓëRelease°æ±¾´æÔÚ²îÒì¡£ËùÒÔassert²»ÊǺ¯Êý£¬¶øÊǺꡣ£¨²Î¼û6¡£5½Ú¡¨Ê¹ÓöÏÑÔ¡¨£©
¡¡¡¡
8¡£5¡£2¡¡ÄÚÁªº¯ÊýµÄ±à³Ì·ç¸ñ
¹Ø¼ü×Öinline±ØÐëÓ뺯Êý¶¨ÒåÌå·ÅÔÚÒ»Æð²ÅÄÜʹº¯Êý³ÉΪÄÚÁª£¬½ö½«inline·ÅÔÚº¯ÊýÉùÃ÷Ç°Ãæ²»ÆðÈκÎ×÷Óá£ÈçÏ·ç¸ñµÄº¯ÊýFoo²»ÄܳÉΪÄÚÁªº¯Êý£º
inline¡¡void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£©£»¡¡ //¡¡inline½öÓ뺯ÊýÉùÃ÷·ÅÔÚÒ»Æð
void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£©
£û
¡£¡£¡£
£ý
¶øÈçÏ·ç¸ñµÄº¯ÊýFooÔò³ÉΪÄÚÁªº¯Êý£º
void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£©£»¡¡
inline¡¡void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£© //¡¡inlineÓ뺯Êý¶¨ÒåÌå·ÅÔÚÒ»Æð
£û
¡£¡£¡£
£ý
ËùÒÔ˵£¬inlineÊÇÒ»ÖÖ¡¨ÓÃÓÚʵÏֵĹؼü×Ö¡¨£¬¶ø²»ÊÇÒ»ÖÖ¡¨ÓÃÓÚÉùÃ÷µÄ¹Ø¼ü×Ö¡¨¡£Ò»°ãµØ£¬Óû§¿ÉÒÔÔĶÁº¯ÊýµÄÉùÃ÷£¬µ«ÊÇ¿´²»µ½º¯ÊýµÄ¶¨Òå¡£¾¡¹ÜÔÚ´ó¶àÊý½Ì¿ÆÊéÖÐÄÚÁªº¯ÊýµÄÉùÃ÷¡¢¶¨ÒåÌåÇ°Ã涼¼ÓÁËinline¹Ø¼ü×Ö£¬µ«ÎÒÈÏΪinline²»Ó¦¸Ã³öÏÖÔÚº¯ÊýµÄÉùÃ÷ÖС£Õâ¸öϸ½ÚËäÈ»²»»áÓ°Ï캯ÊýµÄ¹¦ÄÜ£¬µ«ÊÇÌåÏÖÁ˸ßÖÊÁ¿C£«£«/C³ÌÐòÉè¼Æ·ç¸ñµÄÒ»¸ö»ù±¾Ô­Ôò£ºÉùÃ÷Ó붨Òå²»¿É»ìΪһ̸£¬Óû§Ã»ÓбØÒª¡¢Ò²²»Ó¦¸ÃÖªµÀº¯ÊýÊÇ·ñÐèÒªÄÚÁª¡£
¶¨ÒåÔÚÀàÉùÃ÷Ö®ÖеijÉÔ±º¯Êý½«×Ô¶¯µØ³ÉΪÄÚÁªº¯Êý£¬ÀýÈç
class¡¡A
£û
¡¡¡¡public£º
void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£©¡¡£û¡¡¡£¡£¡£¡¡£ý¡¡ //¡¡×Ô¶¯µØ³ÉΪÄÚÁªº¯Êý
£ý
½«³ÉÔ±º¯ÊýµÄ¶¨ÒåÌå·ÅÔÚÀàÉùÃ÷Ö®ÖÐËäÈ»ÄÜ´øÀ´ÊéдÉϵķ½±ã£¬µ«²»ÊÇÒ»ÖÖÁ¼ºÃµÄ±à³Ì·ç¸ñ£¬ÉÏÀýÓ¦¸Ã¸Ä³É£º
//¡¡Í·Îļþ
¡¡¡¡class¡¡A
£û
¡¡¡¡public£º
void¡¡Foo£¨int¡¡x£»¡¡int¡¡y£©£»¡¡
£ý
//¡¡¶¨ÒåÎļþ
inline¡¡void¡¡A£º£ºFoo£¨int¡¡x£»¡¡int¡¡y£©
¡¡¡¡£û
¡¡¡¡¡£¡£¡£
¡¡¡¡£ý

8¡£5¡£3¡¡É÷ÓÃÄÚÁª
ÄÚÁªÄÜÌá¸ßº¯ÊýµÄÖ´ÐÐЧÂÊ£¬ÎªÊ²Ã´²»°ÑËùÓеĺ¯Êý¶¼¶¨Òå³ÉÄÚÁªº¯Êý£¿
Èç¹ûËùÓеĺ¯Êý¶¼ÊÇÄÚÁªº¯Êý£¬»¹ÓõÃ×Å¡¨ÄÚÁª¡¨Õâ¸ö¹Ø¼ü×ÖÂð£¿
ÄÚÁªÊÇÒÔ´úÂëÅòÕÍ£¨¸´ÖÆ£©Îª´ú¼Û£¬½ö½öÊ¡È¥Á˺¯Êýµ÷ÓõĿªÏú£¬´Ó¶øÌá¸ßº¯ÊýµÄÖ´ÐÐЧÂÊ¡£Èç¹ûÖ´Ðк¯ÊýÌåÄÚ´úÂëµÄʱ¼ä£¬Ïà±ÈÓÚº¯Êýµ÷ÓõĿªÏú½Ï´ó£¬ÄÇôЧÂʵÄÊÕ»ñ»áºÜÉÙ¡£ÁíÒ»·½Ã棬ÿһ´¦ÄÚÁªº¯ÊýµÄµ÷Óö¼Òª¸´ÖÆ´úÂ룬½«Ê¹³ÌÐòµÄ×Ü´úÂëÁ¿Ôö´ó£¬ÏûºÄ¸ü¶àµÄÄÚ´æ¿Õ¼ä¡£ÒÔÏÂÇé¿ö²»ÒËʹÓÃÄÚÁª£º
£¨1£©Èç¹ûº¯ÊýÌåÄڵĴúÂë±È½Ï³¤£¬Ê¹ÓÃÄÚÁª½«µ¼ÖÂÄÚ´æÏûºÄ´ú¼Û½Ï¸ß¡£
£¨2£©Èç¹ûº¯ÊýÌåÄÚ³öÏÖÑ­»·£¬ÄÇôִÐк¯ÊýÌåÄÚ´úÂëµÄʱ¼äÒª±Èº¯Êýµ÷ÓõĿªÏú´ó¡£
ÀàµÄ¹¹Ô캯ÊýºÍÎö¹¹º¯ÊýÈÝÒ×ÈÃÈËÎó½â³ÉʹÓÃÄÚÁª¸üÓÐЧ¡£Òªµ±ÐĹ¹Ô캯ÊýºÍÎö¹¹º¯Êý¿ÉÄÜ»áÒþ²ØһЩÐÐΪ£¬È硨͵͵µØ¡¨Ö´ÐÐÁË»ùÀà»ò³ÉÔ±¶ÔÏóµÄ¹¹Ô캯ÊýºÍÎö¹¹º¯Êý¡£ËùÒÔ²»ÒªËæ±ãµØ½«¹¹Ô캯ÊýºÍÎö¹¹º¯ÊýµÄ¶¨ÒåÌå·ÅÔÚÀàÉùÃ÷ÖС£
¡¡¡¡Ò»¸öºÃµÄ±àÒëÆ÷½«»á¸ù¾Ýº¯ÊýµÄ¶¨ÒåÌ壬×Ô¶¯µØÈ¡Ïû²»ÖµµÃµÄÄÚÁª£¨Õâ½øÒ»²½ËµÃ÷ÁËinline²»Ó¦¸Ã³öÏÖÔÚº¯ÊýµÄÉùÃ÷ÖУ©¡£
8¡£6¡¡Ò»Ð©ÐĵÃÌå»á
C£«£«¡¡ÓïÑÔÖеÄÖØÔØ¡¢ÄÚÁª¡¢È±Ê¡²ÎÊý¡¢Òþʽת»»µÈ»úÖÆÕ¹ÏÖÁ˺ܶàÓŵ㣬µ«ÊÇÕâЩÓŵãµÄ±³ºó¶¼Òþ²Ø×ÅһЩÒþ»¼¡£ÕýÈçÈËÃǵÄÒûʳ£¬ÉÙʳºÍ±©Ê³¶¼²»¿ÉÈ¡£¬Ó¦µ±Ç¡µ½ºÃ´¦¡£ÎÒÃÇÒª±æÖ¤µØ¿´´ýC£«£«µÄлúÖÆ£¬Ó¦¸ÃÇ¡ÈçÆä·ÖµØʹÓÃËüÃÇ¡£ËäÈ»Õâ»áʹÎÒÃDZà³Ìʱ¶à·ÑһЩÐÄ˼£¬ÉÙÁËһЩʹ¿ì£¬µ«Õâ²ÅÊDZà³ÌµÄÒÕÊõ¡£

µÚ9Õ¡¡ÀàµÄ¹¹Ô캯Êý¡¢Îö¹¹º¯ÊýÓ븳ֵº¯Êý
¡¡¡¡¹¹Ô캯Êý¡¢Îö¹¹º¯ÊýÓ븳ֵº¯ÊýÊÇÿ¸öÀà×î»ù±¾µÄº¯Êý¡£ËüÃÇÌ«ÆÕͨÒÔÖÂÈÃÈËÈÝÒ×Âé±Ô´óÒ⣬ÆäʵÕâЩòËƼòµ¥µÄº¯Êý¾ÍÏóûÓж¥¸ÇµÄÏÂË®µÀÄÇÑùΣÏÕ¡£
ÿ¸öÀàÖ»ÓÐÒ»¸öÎö¹¹º¯ÊýºÍÒ»¸ö¸³Öµº¯Êý£¬µ«¿ÉÒÔÓжà¸ö¹¹Ô캯Êý£¨°üº¬Ò»¸ö¿½±´¹¹Ô캯Êý£¬ÆäËüµÄ³ÆΪÆÕͨ¹¹Ô캯Êý£©¡£¶ÔÓÚÈÎÒâÒ»¸öÀàA£¬Èç¹û²»Ïë±àдÉÏÊöº¯Êý£¬C£«£«±àÒëÆ÷½«×Ô¶¯ÎªA²úÉúËĸöȱʡµÄº¯Êý£¬Èç
A£¨void£©£» //¡¡È±Ê¡µÄÎÞ²ÎÊý¹¹Ô캯Êý
A£¨const¡¡A¡¡&a£©£» //¡¡È±Ê¡µÄ¿½±´¹¹Ô캯Êý
~A£¨void£©£» //¡¡È±Ê¡µÄÎö¹¹º¯Êý
A¡¡&¡¡operate¡¡=£¨const¡¡A¡¡&a£©£» //¡¡È±Ê¡µÄ¸³Öµº¯Êý

¡¡¡¡Õâ²»½ûÈÃÈËÒɻ󣬼ÈÈ»ÄÜ×Ô¶¯Éú³Éº¯Êý£¬ÎªÊ²Ã´»¹Òª³ÌÐòÔ±±àд£¿
¡¡¡¡Ô­ÒòÈçÏ£º
£¨1£©Èç¹ûʹÓá¨È±Ê¡µÄÎÞ²ÎÊý¹¹Ô캯Êý¡¨ºÍ¡¨È±Ê¡µÄÎö¹¹º¯Êý¡¨£¬µÈÓÚ·ÅÆúÁË×ÔÖ÷¡¨³õʼ»¯¡¨ºÍ¡¨Çå³ý¡¨µÄ»ú»á£¬C£«£«·¢Ã÷ÈËStroustrupµÄºÃÐĺÃÒâ°×·ÑÁË¡£
£¨2£©¡¨È±Ê¡µÄ¿½±´¹¹Ô캯Êý¡¨ºÍ¡¨È±Ê¡µÄ¸³Öµº¯Êý¡¨¾ù²ÉÓá¨Î»¿½±´¡¨¶ø·Ç¡¨Öµ¿½±´¡¨µÄ·½Ê½À´ÊµÏÖ£¬ÌÈÈôÀàÖк¬ÓÐÖ¸Õë±äÁ¿£¬ÕâÁ½¸öº¯Êý×¢¶¨½«³ö´í¡£

¡¡¡¡¶ÔÓÚÄÇЩûÓгԹ»¿àÍ·µÄC£«£«³ÌÐòÔ±£¬Èç¹ûËû˵±àд¹¹Ô캯Êý¡¢Îö¹¹º¯ÊýÓ븳ֵº¯ÊýºÜÈÝÒ×£¬¿ÉÒÔ²»Óö¯ÄԽ±íÃ÷ËûµÄÈÏʶ»¹±È½Ï·ôdz£¬Ë®Æ½ÓдýÓÚÌá¸ß¡£
¡¡¡¡±¾ÕÂÒÔÀàStringµÄÉè¼ÆÓëʵÏÖΪÀý£¬ÉîÈë²ûÊö±»ºÜ¶à½Ì¿ÆÊéºöÊÓÁ˵ĵÀÀí¡£StringµÄ½á¹¹ÈçÏ£º
class¡¡String
£û
¡¡¡¡public£º
String£¨const¡¡char¡¡*str¡¡=¡¡NULL£©£» //¡¡ÆÕͨ¹¹Ô캯Êý
String£¨const¡¡String¡¡&other£©£» //¡¡¿½±´¹¹Ô캯Êý
~¡¡String£¨void£©£» //¡¡Îö¹¹º¯Êý
String¡¡&¡¡operate¡¡=£¨const¡¡String¡¡&other£©£» //¡¡¸³Öµº¯Êý
¡¡¡¡private£º
char¡¡¡¡ *m_data£» //¡¡ÓÃÓÚ±£´æ×Ö·û´®
£ý£»
9¡£1¡¡¹¹Ô캯ÊýÓëÎö¹¹º¯ÊýµÄÆðÔ´
×÷Ϊ±ÈC¸üÏȽøµÄÓïÑÔ£¬C£«£«ÌṩÁ˸üºÃµÄ»úÖÆÀ´ÔöÇ¿³ÌÐòµÄ°²È«ÐÔ¡£C£«£«±àÒëÆ÷¾ßÓÐÑϸñµÄÀàÐÍ°²È«¼ì²é¹¦ÄÜ£¬Ëü¼¸ºõÄÜÕÒ³ö³ÌÐòÖÐËùÓеÄÓï·¨ÎÊÌ⣬ÕâµÄÈ·°ïÁ˳ÌÐòÔ±µÄ´óæ¡£µ«ÊdzÌÐòͨ¹ýÁ˱àÒë¼ì²é²¢²»±íʾ´íÎóÒѾ­²»´æÔÚÁË£¬ÔÚ¡¨´íÎ󡨵Ĵó¼ÒÍ¥À¡¨Óï·¨´íÎ󡨵ĵØλֻÄÜËãÊÇСµÜµÜ¡£¼¶±ð¸ßµÄ´íÎóͨ³£Òþ²ØµÃºÜÉ¾ÍÏó½Æ»«µÄ×ï·¸£¬Ïë´þסËû¿É²»ÈÝÒס£
¸ù¾Ý¾­Ñ飬²»ÉÙÄÑÒÔ²ì¾õµÄ³ÌÐò´íÎóÊÇÓÉÓÚ±äÁ¿Ã»Óб»ÕýÈ·³õʼ»¯»òÇå³ýÔì³ÉµÄ£¬¶ø³õʼ»¯ºÍÇå³ý¹¤×÷ºÜÈÝÒ×±»ÈËÒÅÍü¡£StroustrupÔÚÉè¼ÆC£«£«ÓïÑÔʱ³ä·Ö¿¼ÂÇÁËÕâ¸öÎÊÌâ²¢ºÜºÃµØÓèÒÔ½â¾ö£º°Ñ¶ÔÏóµÄ³õʼ»¯¹¤×÷·ÅÔÚ¹¹Ô캯ÊýÖУ¬°ÑÇå³ý¹¤×÷·ÅÔÚÎö¹¹º¯ÊýÖС£µ±¶ÔÏó±»´´½¨Ê±£¬¹¹Ô캯Êý±»×Ô¶¯Ö´ÐС£µ±¶ÔÏóÏûÍöʱ£¬Îö¹¹º¯Êý±»×Ô¶¯Ö´ÐС£ÕâϾͲ»Óõ£ÐÄÍüÁ˶ÔÏóµÄ³õʼ»¯ºÍÇå³ý¹¤×÷¡£
¹¹Ô캯ÊýÓëÎö¹¹º¯ÊýµÄÃû×Ö²»ÄÜËæ±ãÆ𣬱ØÐëÈñàÒëÆ÷Èϵóö²Å¿ÉÒÔ±»×Ô¶¯Ö´ÐС£StroustrupµÄÃüÃû·½·¨¼È¼òµ¥ÓÖºÏÀí£ºÈù¹Ô캯Êý¡¢Îö¹¹º¯ÊýÓëÀàͬÃû£¬ÓÉÓÚÎö¹¹º¯ÊýµÄÄ¿µÄÓë¹¹Ô캯ÊýµÄÏà·´£¬¾Í¼Óǰ׺'~'ÒÔʾÇø±ð¡£
¡¡¡¡³ýÁËÃû×ÖÍ⣬¹¹Ô캯ÊýÓëÎö¹¹º¯ÊýµÄÁíÒ»¸öÌرðÖ®´¦ÊÇûÓзµ»ØÖµÀàÐÍ£¬ÕâÓë·µ»ØÖµÀàÐÍΪvoidµÄº¯Êý²»Í¬¡£¹¹Ô캯ÊýÓëÎö¹¹º¯ÊýµÄʹÃü·Ç³£Ã÷È·£¬¾ÍÏó³öÉúÓëËÀÍö£¬¹âÁïÁïµØÀ´¹âÁïÁïµØÈ¥¡£Èç¹ûËüÃÇÓзµ»ØÖµÀàÐÍ£¬ÄÇô±àÒëÆ÷½«²»ÖªËù´ë¡£ÎªÁË·ÀÖ¹½ÚÍâÉúÖ¦£¬¸É´à¹æ¶¨Ã»Óзµ»ØÖµÀàÐÍ¡££¨ÒÔÉϵä¹Ê²Î¿¼ÁËÎÄÏ×£§Eekel£»¡¡p55¡­p56£§£©
9¡£2¡¡¹¹Ô캯ÊýµÄ³õʼ»¯±í
¹¹Ô캯ÊýÓиöÌØÊâµÄ³õʼ»¯·½Ê½½Ð¡¨³õʼ»¯±í´ïʽ±í¡¨£¨¼ò³Æ³õʼ»¯±í£©¡£³õʼ»¯±íλÓÚº¯Êý²ÎÊý±íÖ®ºó£¬È´ÔÚº¯ÊýÌå¡¡£û£ý¡¡Ö®Ç°¡£Õâ˵Ã÷¸Ã±íÀïµÄ³õʼ»¯¹¤×÷·¢ÉúÔÚº¯ÊýÌåÄÚµÄÈκδúÂë±»Ö´ÐÐ֮ǰ¡£
¹¹Ô캯Êý³õʼ»¯±íµÄʹÓùæÔò£º
*¡¡Èç¹ûÀà´æÔڼ̳йØϵ£¬ÅÉÉúÀà±ØÐëÔÚÆä³õʼ»¯±íÀïµ÷ÓûùÀàµÄ¹¹Ô캯Êý¡£
ÀýÈç
class¡¡A
£û¡£¡£¡£
A£¨int¡¡x£©£» //¡¡AµÄ¹¹Ô캯Êý
¡¡¡¡£ý£»
class¡¡B¡¡£º¡¡public¡¡A
£û¡£¡£¡£
B£¨int¡¡x£»¡¡int¡¡y£©£»//¡¡BµÄ¹¹Ô캯Êý
£ý£»
B£º£ºB£¨int¡¡x£»¡¡int¡¡y£©
¡¡£º¡¡A£¨x£© //¡¡ÔÚ³õʼ»¯±íÀïµ÷ÓÃAµÄ¹¹Ô캯Êý
£û
¡¡¡¡¡£¡£¡£
¡¡¡¡£ý
*¡¡ÀàµÄconst³£Á¿Ö»ÄÜÔÚ³õʼ»¯±íÀï±»³õʼ»¯£¬ÒòΪËü²»ÄÜÔÚº¯ÊýÌåÄÚÓø³ÖµµÄ·½Ê½À´³õʼ»¯£¨²Î¼û5¡£4½Ú£©¡£
*¡¡ÀàµÄÊý¾Ý³ÉÔ±µÄ³õʼ»¯¿ÉÒÔ²ÉÓóõʼ»¯±í»òº¯ÊýÌåÄÚ¸³ÖµÁ½ÖÖ·½Ê½£¬ÕâÁ½ÖÖ·½Ê½µÄЧÂʲ»ÍêÈ«Ïàͬ¡£
·ÇÄÚ²¿Êý¾ÝÀàÐ͵ijÉÔ±¶ÔÏóÓ¦µ±²ÉÓõÚÒ»ÖÖ·½Ê½³õʼ»¯£¬ÒÔ»ñÈ¡¸ü¸ßµÄЧÂÊ¡£ÀýÈç
class¡¡A
£û¡£¡£¡£
A£¨void£©£» //¡¡ÎÞ²ÎÊý¹¹Ô캯Êý
A£¨const¡¡A¡¡&other£©£» //¡¡¿½±´¹¹Ô캯Êý
A¡¡&¡¡operate¡¡=£¨¡¡const¡¡A¡¡&other£©£» //¡¡¸³Öµº¯Êý
£ý£»

class¡¡B
£û
¡¡¡¡public£º
B£¨const¡¡A¡¡&a£©£» //¡¡BµÄ¹¹Ô캯Êý
¡¡¡¡private£º
A¡¡¡¡m_a£» //¡¡³ÉÔ±¶ÔÏó
¡¡¡¡£ý£»
¡¡¡¡
¡¡¡¡Ê¾Àý9¡­2£¨a£©ÖУ¬ÀàBµÄ¹¹Ô캯ÊýÔÚÆä³õʼ»¯±íÀïµ÷ÓÃÁËÀàAµÄ¿½±´¹¹Ô캯Êý£¬´Ó¶ø½«³ÉÔ±¶ÔÏóm_a³õʼ»¯¡£
¡¡¡¡Ê¾Àý9¡­2¡¡£¨b£©ÖУ¬ÀàBµÄ¹¹Ô캯ÊýÔÚº¯ÊýÌåÄÚÓø³ÖµµÄ·½Ê½½«³ÉÔ±¶ÔÏóm_a³õʼ»¯¡£ÎÒÃÇ¿´µ½µÄÖ»ÊÇÒ»Ìõ¸³ÖµÓï¾ä£¬µ«Êµ¼ÊÉÏBµÄ¹¹Ô캯Êý¸ÉÁËÁ½¼þÊ£ºÏÈ°µµØÀï´´½¨m_a¶ÔÏ󣨵÷ÓÃÁËAµÄÎÞ²ÎÊý¹¹Ô캯Êý£©£¬ÔÙµ÷ÓÃÀàAµÄ¸³Öµº¯Êý£¬½«²ÎÊýa¸³¸øm_a¡£

B£º£ºB£¨const¡¡A¡¡&a£©
¡¡£º¡¡m_a£¨a£©
£û¡¡
¡¡¡¡¡¡¡£¡£¡£¡¡
£ý
B£º£ºB£¨const¡¡A¡¡&a£©
£û
m_a¡¡=¡¡a£»
¡£¡£¡£
£ý
¡¡Ê¾Àý9¡­2£¨a£©¡¡³ÉÔ±¶ÔÏóÔÚ³õʼ»¯±íÖб»³õʼ»¯¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý9¡­2£¨b£©¡¡³ÉÔ±¶ÔÏóÔÚº¯ÊýÌåÄÚ±»³õʼ»¯

¡¡¡¡¶ÔÓÚÄÚ²¿Êý¾ÝÀàÐ͵ÄÊý¾Ý³ÉÔ±¶øÑÔ£¬Á½ÖÖ³õʼ»¯·½Ê½µÄЧÂʼ¸ºõûÓÐÇø±ð£¬µ«ºóÕߵijÌÐò°æʽËƺõ¸üÇåÎúЩ¡£ÈôÀàFµÄÉùÃ÷ÈçÏ£º
¡¡¡¡class¡¡F
¡¡¡¡£û
¡¡¡¡¡¡¡¡public£º
¡¡¡¡ F£¨int¡¡x£»¡¡int¡¡y£©£» //¡¡¹¹Ô캯Êý
¡¡¡¡¡¡¡¡private£º
¡¡¡¡ int¡¡m_x£»¡¡m_y£»
¡¡¡¡ int¡¡m_i£»¡¡m_j£»
¡¡¡¡£ý
¡¡¡¡Ê¾Àý9¡­2£¨c£©ÖÐFµÄ¹¹Ô캯Êý²ÉÓÃÁ˵ÚÒ»ÖÖ³õʼ»¯·½Ê½£¬Ê¾Àý9¡­2£¨d£©ÖÐFµÄ¹¹Ô캯Êý²ÉÓÃÁ˵ڶþÖÖ³õʼ»¯·½Ê½¡£

F£º£ºF£¨int¡¡x£»¡¡int¡¡y£©
¡¡£º¡¡m_x£¨x£©£»¡¡m_y£¨y£©
£û¡¡
¡¡¡¡¡¡m_i¡¡=¡¡0£»¡¡
¡¡¡¡¡¡m_j¡¡=¡¡0£»
£ý
F£º£ºF£¨int¡¡x£»¡¡int¡¡y£©
£û¡¡
¡¡¡¡¡¡m_x¡¡=¡¡x£»
¡¡¡¡¡¡m_y¡¡=¡¡y£»
¡¡¡¡¡¡m_i¡¡=¡¡0£»¡¡
¡¡¡¡¡¡m_j¡¡=¡¡0£»
£ý
¡¡Ê¾Àý9¡­2£¨c£©¡¡Êý¾Ý³ÉÔ±ÔÚ³õʼ»¯±íÖб»³õʼ»¯¡¡¡¡¡¡¡¡¡¡Ê¾Àý9¡­2£¨d£©¡¡Êý¾Ý³ÉÔ±ÔÚº¯ÊýÌåÄÚ±»³õʼ»¯
9¡£3¡¡¹¹ÔìºÍÎö¹¹µÄ´ÎÐò
¹¹Ôì´ÓÀà²ã´ÎµÄ×î¸ù´¦¿ªÊ¼£¬ÔÚÿһ²ãÖУ¬Ê×Ïȵ÷ÓûùÀàµÄ¹¹Ô캯Êý£¬È»ºóµ÷ÓóÉÔ±¶ÔÏóµÄ¹¹Ô캯Êý¡£Îö¹¹ÔòÑϸñ°´ÕÕÓë¹¹ÔìÏà·´µÄ´ÎÐòÖ´ÐУ¬¸Ã´ÎÐòÊÇΨһµÄ£¬·ñÔò±àÒëÆ÷½«ÎÞ·¨×Ô¶¯Ö´ÐÐÎö¹¹¹ý³Ì¡£
¡¡¡¡Ò»¸öÓÐȤµÄÏÖÏóÊÇ£¬³ÉÔ±¶ÔÏó³õʼ»¯µÄ´ÎÐòÍêÈ«²»ÊÜËüÃÇÔÚ³õʼ»¯±íÖдÎÐòµÄÓ°Ï죬ֻÓɳÉÔ±¶ÔÏóÔÚÀàÖÐÉùÃ÷µÄ´ÎÐò¾ö¶¨¡£ÕâÊÇÒòΪÀàµÄÉùÃ÷ÊÇΨһµÄ£¬¶øÀàµÄ¹¹Ô캯Êý¿ÉÒÔÓжà¸ö£¬Òò´Ë»áÓжà¸ö²»Í¬´ÎÐòµÄ³õʼ»¯±í¡£Èç¹û³ÉÔ±¶ÔÏó°´ÕÕ³õʼ»¯±íµÄ´ÎÐò½øÐй¹Ô죬Õ⽫µ¼ÖÂÎö¹¹º¯ÊýÎÞ·¨µÃµ½Î¨Ò»µÄÄæÐò¡££§Eckel£»¡¡p260¡­261£§
9¡£4¡¡Ê¾Àý£ºÀàStringµÄ¹¹Ô캯ÊýÓëÎö¹¹º¯Êý
//¡¡StringµÄÆÕͨ¹¹Ô캯Êý
String£º£ºString£¨const¡¡char¡¡*str£©
£û
if£¨strNULL£©
£û
m_data¡¡=¡¡new¡¡char£§1£§£»
*m_data¡¡=¡¡'0'£»
£ý
else
£û
int¡¡length¡¡=¡¡strlen£¨str£©£»
m_data¡¡=¡¡new¡¡char£§length£«1£§£»
strcpy£¨m_data£»¡¡str£©£»
£ý
£ý

¡¡¡¡//¡¡StringµÄÎö¹¹º¯Êý
String£º£º~String£¨void£©
£û
delete¡¡£§£§¡¡m_data£»
¡¡¡¡//¡¡ÓÉÓÚm_dataÊÇÄÚ²¿Êý¾ÝÀàÐÍ£¬Ò²¿ÉÒÔд³É¡¡delete¡¡m_data£»
£ý
9¡£5¡¡²»ÒªÇáÊÓ¿½±´¹¹Ô캯ÊýÓ븳ֵº¯Êý
ÓÉÓÚ²¢·ÇËùÓеĶÔÏ󶼻áʹÓÿ½±´¹¹Ô캯ÊýºÍ¸³Öµº¯Êý£¬³ÌÐòÔ±¿ÉÄܶÔÕâÁ½¸öº¯ÊýÓÐЩÇáÊÓ¡£ÇëÏȼÇסÒÔϵľ¯¸æ£¬ÔÚÔĶÁÕýÎÄʱ¾Í»á¶àÐÄ£º
*¡¡±¾Õ¿ªÍ·½²¹ý£¬Èç¹û²»Ö÷¶¯±àд¿½±´¹¹Ô캯ÊýºÍ¸³Öµº¯Êý£¬±àÒëÆ÷½«ÒÔ¡¨Î»¿½±´¡¨µÄ·½Ê½×Ô¶¯Éú³ÉȱʡµÄº¯Êý¡£ÌÈÈôÀàÖк¬ÓÐÖ¸Õë±äÁ¿£¬ÄÇôÕâÁ½¸öȱʡµÄº¯Êý¾ÍÒþº¬ÁË´íÎó¡£ÒÔÀàStringµÄÁ½¸ö¶ÔÏóa£»bΪÀý£¬¼ÙÉèa¡£m_dataµÄÄÚÈÝΪ¡¨hello¡¨£¬b¡£m_dataµÄÄÚÈÝΪ¡¨world¡¨¡£
¡¡¡¡ÏÖ½«a¸³¸øb£¬È±Ê¡¸³Öµº¯ÊýµÄ¡¨Î»¿½±´¡¨Òâζ×ÅÖ´ÐÐb¡£m_data¡¡=¡¡a¡£m_data¡£Õ⽫Ôì³ÉÈý¸ö´íÎó£ºÒ»ÊÇb¡£m_dataÔ­ÓеÄÄÚ´æû±»ÊÍ·Å£¬Ôì³ÉÄÚ´æй¶£»¶þÊÇb¡£m_dataºÍa¡£m_dataÖ¸Ïòͬһ¿éÄڴ棬a»òbÈκÎÒ»·½±ä¶¯¶¼»áÓ°ÏìÁíÒ»·½£»ÈýÊÇÔÚ¶ÔÏó±»Îö¹¹Ê±£¬m_data±»ÊÍ·ÅÁËÁ½´Î¡£
¡¡¡¡
*¡¡¿½±´¹¹Ô캯ÊýºÍ¸³Öµº¯Êý·Ç³£ÈÝÒ×»ìÏý£¬³£µ¼Ö´íд¡¢´íÓ᣿½±´¹¹Ô캯ÊýÊÇÔÚ¶ÔÏó±»´´½¨Ê±µ÷Óõģ¬¶ø¸³Öµº¯ÊýÖ»Äܱ»ÒѾ­´æÔÚÁ˵ĶÔÏóµ÷Óá£ÒÔϳÌÐòÖУ¬µÚÈý¸öÓï¾äºÍµÚËĸöÓï¾äºÜÏàËÆ£¬Äã·ÖµÃÇå³þÄĸöµ÷ÓÃÁË¿½±´¹¹Ô캯Êý£¬Äĸöµ÷ÓÃÁ˸³Öµº¯ÊýÂð£¿
String¡¡¡¡a£¨¡¨hello¡¨£©£»
String¡¡¡¡b£¨¡¨world¡¨£©£»
String¡¡¡¡c¡¡=¡¡a£» //¡¡µ÷ÓÃÁË¿½±´¹¹Ô캯Êý£¬×îºÃд³É¡¡c£¨a£©£»
¡¡¡¡c¡¡=¡¡b£»¡¡ //¡¡µ÷ÓÃÁ˸³Öµº¯Êý
¡¡¡¡±¾ÀýÖеÚÈý¸öÓï¾äµÄ·ç¸ñ½Ï²î£¬Ò˸Äд³ÉString¡¡c£¨a£©¡¡ÒÔÇø±ðÓÚµÚËĸöÓï¾ä¡£
9¡£6¡¡Ê¾Àý£ºÀàStringµÄ¿½±´¹¹Ô캯ÊýÓ븳ֵº¯Êý
//¡¡¿½±´¹¹Ô캯Êý
String£º£ºString£¨const¡¡String¡¡&other£©
£û
¡¡¡¡//¡¡ÔÊÐí²Ù×÷otherµÄ˽ÓгÉÔ±m_data
int¡¡length¡¡=¡¡strlen£¨other¡£m_data£©£»
m_data¡¡=¡¡new¡¡char£§length£«1£§£»
strcpy£¨m_data£»¡¡other¡£m_data£©£»
£ý

¡¡¡¡//¡¡¸³Öµº¯Êý
String¡¡&¡¡String£º£ºoperate¡¡=£¨const¡¡String¡¡&other£©
£û
//¡¡£¨1£©¡¡¼ì²é×Ô¸³Öµ
if£¨this¡¡¡¡&other£©
return¡¡*this£»

//¡¡£¨2£©¡¡ÊÍ·ÅÔ­ÓеÄÄÚ´æ×ÊÔ´
delete¡¡£§£§¡¡m_data£»

//¡¡£¨3£©·ÖÅäеÄÄÚ´æ×ÊÔ´£¬²¢¸´ÖÆÄÚÈÝ
int¡¡length¡¡=¡¡strlen£¨other¡£m_data£©£»
m_data¡¡=¡¡new¡¡char£§length£«1£§£»
strcpy£¨m_data£»¡¡other¡£m_data£©£»

//¡¡£¨4£©·µ»Ø±¾¶ÔÏóµÄÒýÓÃ
return¡¡*this£»
¡¡¡¡£ý

ÀàString¿½±´¹¹Ô캯ÊýÓëÆÕͨ¹¹Ô캯Êý£¨²Î¼û9¡£4½Ú£©µÄÇø±ðÊÇ£ºÔÚº¯ÊýÈë¿Ú´¦ÎÞÐèÓëNULL½øÐбȽϣ¬ÕâÊÇÒòΪ¡¨ÒýÓᨲ»¿ÉÄÜÊÇNULL£¬¶ø¡¨Ö¸Õ롨¿ÉÒÔΪNULL¡£
ÀàStringµÄ¸³Öµº¯Êý±È¹¹Ô캯Êý¸´Ôӵö࣬·ÖËIJ½ÊµÏÖ£º
£¨1£©µÚÒ»²½£¬¼ì²é×Ô¸³Öµ¡£Äã¿ÉÄÜ»áÈÏΪ¶à´ËÒ»¾Ù£¬ÄѵÀÓÐÈË»áÓÞ´Àµ½Ð´³ö¡¡a¡¡=¡¡a¡¡ÕâÑùµÄ×Ô¸³ÖµÓï¾ä£¡µÄÈ·²»»á¡£µ«ÊǼä½ÓµÄ×Ô¸³ÖµÈÔÓпÉÄܳöÏÖ£¬ÀýÈç

//¡¡ÄÚÈÝ×Ô¸³Öµ
b¡¡=¡¡a£»
¡£¡£¡£
c¡¡=¡¡b£»
¡£¡£¡£
a¡¡=¡¡c£»
//¡¡µØÖ·×Ô¸³Öµ
b¡¡=¡¡&a£»
¡£¡£¡£
a¡¡=¡¡*b£»
¡¡¡¡
¡¡¡¡Ò²ÐíÓÐÈË»á˵£º¡¨¼´Ê¹³öÏÖ×Ô¸³Öµ£¬ÎÒÒ²¿ÉÒÔ²»Àí²Ç£¬´ó²»ÁË»¯µãʱ¼äÈöÔÏó¸´ÖÆ×Ô¼º¶øÒÑ£¬·´Õý²»»á³ö´í£¡¡¨
¡¡¡¡ËûÕæµÄ˵´íÁË¡£¿´¿´µÚ¶þ²½µÄdelete£¬×Ôɱºó»¹Äܸ´ÖÆ×Ô¼ºÂð£¿ËùÒÔ£¬Èç¹û·¢ÏÖ×Ô¸³Öµ£¬Ó¦¸ÃÂíÉÏÖÕÖ¹º¯Êý¡£×¢Òâ²»Òª½«¼ì²é×Ô¸³ÖµµÄifÓï¾ä
¡¡¡¡if£¨this¡¡¡¡&other£©
´íд³ÉΪ
if£¨¡¡*this¡¡¡¡other£©
£¨2£©µÚ¶þ²½£¬ÓÃdeleteÊÍ·ÅÔ­ÓеÄÄÚ´æ×ÊÔ´¡£Èç¹ûÏÖÔÚ²»ÊÍ·Å£¬ÒÔºó¾Íû»ú»áÁË£¬½«Ôì³ÉÄÚ´æй¶¡£
£¨3£©µÚÈý²½£¬·ÖÅäеÄÄÚ´æ×ÊÔ´£¬²¢¸´ÖÆ×Ö·û´®¡£×¢Ò⺯Êýstrlen·µ»ØµÄÊÇÓÐЧ×Ö·û´®³¤¶È£¬²»°üº¬½áÊø·û'0'¡£º¯ÊýstrcpyÔòÁ¬'0'Ò»Æð¸´ÖÆ¡£
£¨4£©µÚËIJ½£¬·µ»Ø±¾¶ÔÏóµÄÒýÓã¬Ä¿µÄÊÇΪÁËʵÏÖÏó¡¡a¡¡=¡¡b¡¡=¡¡c¡¡ÕâÑùµÄÁ´Ê½±í´ï¡£×¢Òâ²»Òª½«¡¡return¡¡*this¡¡´íд³É¡¡return¡¡this¡¡¡£Ä

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©

Äã¿ÉÄÜϲ»¶µÄ