ÔÚÅÉÉúÀàÖпÉÒÔÖØÐ¶¨Òå´Ó»ùÀà¼Ì³ÐÏÂÀ´µÄÐ麯Êý£¬´Ó¶øÌṩ¸Ãº¯ÊýµÄÊÊÓÃÓÚÅÉÉúÀàµÄרÃŰ汾¡£Ò²¿ÉÄܲ¢²»ÐèÒªÖØÐ¶¨Ò壬ÔÚÕâÖÖÇé¿öÏ£¬¼Ì³ÐÏÂÀ´µÄÐ麯ÊýÈÔÈ»±£³ÖÆäÔÚ»ùÀàÖе͍Ò壬¼´ÅÉÉúÀàºÍ»ùÀàʹÓÃͬһº¯Êý°æ±¾¡£³ýÉÙÊýÌØÊâÇé¿öÍ⣬ÔÚÅÉÉúÀàÖÐÖØ¶¨ÒåÐ麯Êýʱ£¬º¯ÊýÃû¡¢ÐβαíºÍ·µ»ØÖµÀàÐͱØÐë±£³Ö²»±ä¡£
Ð麯ÊýÔÚÅÉÉúÀà±»ÖØ¶¨Òåºó£¬Öض¨ÒåµÄº¯ÊýÈÔÈ»ÊÇÒ»¸öÐ麯Êý£¬¿ÉÒÔÔÚÆäÅÉÉúÀàÖÐÔٴα»Öض¨Òå¡£×¢Ò⣬¶ÔÓÚÐ麯ÊýµÄÖØ¶¨Ò庯Êý£¬ÎÞÂÛÊÇ·ñÓÃvirtualÐÞÊζ¼ÊÇÐ麯Êý¡£µ±È»£¬×îºÃ²»ÒªÊ¡ÂÔvirtualÐÞÊΣ¬ÒÔÃâÏ÷Èõ³ÌÐòµÄ¿É¶ÁÐÔ¡£
¶ÔÐ麯ÊýµÄµ÷ÓÃÓÐÁ½ÖÖ·½Ê½£º·Ç¶à̬µ÷ÓúͶà̬µ÷Ó᣷Ƕà̬µ÷ÓÃÊÇÖ¸²»½èÖúÓÚÖ¸Õë»òÒýÓõÄÖ±½Óµ÷Ó᣷Ƕà̬µ÷ÓÃ×ÜÊÇͨ¹ý³ÉÔ±·ÃÎÊÔËËã·û\½øÐеġ£Óëͨ³£µÄ³ÉÔ±º¯Êýµ÷ÓÃÀàËÆ£¬·Ç¶à̬µ÷ÓÃÊǽ¨Á¢ÔÚ¾²Ì¬°ó¶¨»úÖÆµÄ»ù´¡Ö®Éϵ쬲»¾ß±¸¶à̬ÐÔÌØÕ÷¡£¶à̬µ÷ÓÃÊÇÖ¸½èÖúÓÚÖ¸Ïò»ùÀàµÄÖ¸Õë»òÒýÓõĵ÷Óá£ÔÚC++ÖУ¬Ò»¸ö»ùÀàÖ¸Õë(»òÒýÓÃ)¿ÉÒÔÓÃÓÚÖ¸ÏòËüµÄÅÉÉúÀà¶ÔÏ󣬶øÇÒͨ¹ýÕâÑùµÄÖ¸Õë(»òÒýÓÃ)µ÷ÓÃÐ麯Êýʱ£¬±»µ÷ÓõÄÊǸÃÖ¸Õë(»òÒýÓÃ)ʵ¼ÊËùÖ¸ÏòµÄ¶ÔÏóÀàµÄÄǸöÖØ¶¨Òå°æ±¾¡£
»ùÀàÖеÄʵº¯ÊýÒ²¿ÉÒÔÔÚÅÉÉúÀàÖÐÖØ¶¨Ò壬µ«Öض¨ÒåµÄº¯ÊýÈÔÈ»ÊÇʵº¯Êý¡£ÔÚʵº¯ÊýµÄÇé¿öÏ£¬Í¨¹ý»ùÀàÖ¸Õë(»òÒýÓÃ)Ëùµ÷ÓõÄÖ»ÄÜÊÇ»ùÀàµÄÄǸöº¯Êý°æ±¾£¬ÎÞ·¨µ÷Óõ½ÅÉÉúÀàÖеÄÖØ¶¨Ò庯Êý¡£Ò²¾ÍÊÇ˵£¬¾¡¹Üµ÷ÓõÄÓï·¨ÐÎʽ¿ÉÄÜÊÇÏàͬµÄ£¬µ«¶Ôʵº¯ÊýµÄÈκÎÐÎʽµÄµ÷Óö¼ÊǷǶà̬µÄ¡£×¢Ò⣬ÎÞÂÛÊÇÐ麯Êý»¹ÊÇʵº¯Êý£¬ÔÚÅÉÉúÀàÖб»Öض¨Òåºó£¬ÔÀ´µÄº¯Êý°æ±¾¼´±»Òþ²Ø£¬ÔÚͨ¹ý³ÉÔ±·ÃÎÊÔËËã·û £®Ö±½Óµ÷Óøú¯Êýʱ£¬Ëùµ÷ÓõÄÊÇÖØ¶¨Òå°æ±¾¡£µ«ÔÀ´µÄ°æ±¾ÒÀÈ»´æÔÚ£¬ÈÔÈ»¿ÉÒÔͨ¹ýÔÚº¯ÊýÃûǰ¼ÓÓòÐÞÊÎ(¼´£º£¼ÀàÃû£¾::)À´µ÷ÓÃËüÃÇ¡£
3.ÐéÎö¹¹º¯Êý
Îö¹¹º¯ÊýÒ²¿ÉÒÔͨ¹ývirtualÐÞÊζøÉùÃ÷ΪÐ麯Êý¡£ÐéÎö¹¹º¯ÊýÓëÒ»°ãÐ麯ÊýµÄ²»Í¬Ö®´¦ÔÚÓÚ£º
(1)ÖØ¶¨Ò庯Êý¾ÍÊÇÅÉÉúÀàµÄÎö¹¹º¯Êý£¬²»ÒªÇóͬÃû¡£
(2)Ò»¸öÐéÎö¹¹º¯ÊýµÄ°æ±¾±»µ÷ÓÃÖ´Ðк󣬽ÓמÍÒªµ÷ÓÃÖ´ÐлùÀà°æ±¾£¬ÒÀ´ÎÀàÍÆ£¬Ö±µ½µ÷ÓÃÖ´ÐÐÁËÅÉÉúÐòÁеÄ×ʼµÄÄǸöÐéÎö¹¹º¯Êý°æ±¾ÎªÖ¹¡£
ͨ³££¬Ö»ÒªÅÉÉúÀàÖаüº¬ÓÐÐ麯ÊýµÄÖØ¶¨Òå(´Ó¶øÓпÉÄܱ»¶à̬µ÷ÓÃ)£¬¶øÇÒ¶ÔÎöº¯Êý½øÐÐÁËרÃŵÄÉùÃ÷(¶ø²»ÊDz»×öÈκÎÉùÃ÷£¬´Ó¶ø²ÉÓÃĬÈϵÄÎö¹¹º¯Êý)£¬Æä»ùÀàµÄÎö¹¹º¯Êý¾ÍÓ¦µ±ÉùÃ÷ΪÐ麯Êý£¬·ñÔò¾Í¿ÉÄܳöÎÊÌâ¡£
4.´¿Ð麯ÊýÓë³éÏóÀà
ÔÚijЩÇé¿öÏ£¬»ùÀàÎÞ·¨È·¶¨(»òÎÞ·¨Íêȫȷ¶¨)Ò»¸öÐ麯ÊýµÄ¾ßÌå²Ù×÷·½Ê½»òÄÚÈÝ£¬Ö»ÄÜ¿¿ÅÉÉúÀàÀ´Ìṩ¸÷¸ö¾ßÌåµÄʵÏÖ°æ±¾¡£»ùÀàÖеÄÕâÖÖ±ØÐë¿¿ÅÉÉúÀàÌá¹©ÖØ¶¨Òå°æ±¾µÄÐ麯Êý³ÆÎª´¿Ð麯Êý¡£ÎªÁ˽«Ò»¸öÐ麯ÊýÉùÃ÷Ϊ´¿Ð麯Êý£¬ÐèÒªÔÚÐ麯ÊýÔÐ͵ÄÓï¾ä½áÊø·û £»Ö®Ç°¼ÓÉÏ=0¡£
ÓµÓд¿Ð麯ÊýµÄÀà³ÆÎª³éÏóÀ࣬³éÏóÀ಻ÄÜÓÃÀ´¶¨Òå¶ÔÏó¡£Èç¹ûÒ»¸ö³éÏóÀàµÄÅÉÉúÀàûÓÐÖØ¶¨ÒåÀ´×Ô»ùÀàµÄij¸ö´¿Ð麯Êý£¬Ôò¸Ãº¯ÊýÔÚÅÉÉúÀàÖÐÈÔÈ»ÊÇ´¿Ð麯Êý£¬Õâ¾ÍʹµÃ¸ÃÅÉÉúÀàÒ²³ÉΪ³éÏóÀà¡£Ò²¾ÍÊÇ˵£¬Ò»¸öÅÉÉúÀà¿ÉÒÔ°ÑÖØ¶¨Òå´¿Ð麯ÊýµÄÈÎÎñ½øÒ»²½×ª½»¸øËü×Ô¼ºµÄÅÉÉúÀà¡£
¿ÉÒÔÔÚ½«Ò»¸öº¯ÊýÉùÃ÷Ϊ´¿Ð麯ÊýµÄͬʱ£¬Îª¸Ãº¯ÊýÌṩʵÏÖ°æ±¾¡£»»¾ä»°Ëµ£¬Ò»¸öº¯ÊýÊÇ·ñΪ´¿Ð麯Êý£¬È¡¾öÓÚÆäÔÐεÄβ²¿ÊÇ·ñΪ¡°=0¡±£¬ÓëʵÏÖ°æ±¾µÄÓÐÎÞûÓÐʲô¹ØÏµ¡£ÓµÓÐʵÏÖ°æ±¾µÄ´¿Ð麯ÊýÈÔÈ»ÓÐÀµÓÚÅÉÉúÀàÌá¹©ÖØ¶¨Òå°æ±¾¡£´¿Ð麯ÊýµÄʵÏְ汾ͨ³£ÊDz»ÍêÉÆµÄ°æ±¾£¬µ«°üº¬ÁËһЩ¹²ÓвÙ×÷£¬¹©¸÷¸öÅÉÉúÀàÔÚÖØ¶¨Ò庯ÊýÖе÷Óá£ÅÉÉúÀàÔÚÖØ¶¨ÒåÒ»¸ö´¿Ð麯Êýʱ£¬¿ÉÒÔ¼ÌÐø½«Ö®ÉùÃ÷Ϊ´¿Ð麯Êý¡£ÁíÍ⣬´¿Ð麯Êý²»µÃÉùÃ÷ΪÄÚÁªº¯Êý¡£
µÚ8Õ ÔËËã·ûÖØÔØ¿¼µã¹éÄÉ 8.1 ÔËËã·ûº¯Êý¾ÝÓëÔËËã·ûÖØÔØ
ÔËËã·ûÖØÔØÊǼÆËã»úÓïÑÔ¹ÌÓжà̬ÐÔµÄÌåÏÖ£¬Êǹ¹³É¼ÆËã»úÓïÑԵĻù´¡Ö®Ò»¡£ C£«£«°ÑÖØÔØµÄÔËËã·ûÊÓÎªÌØÊâµÄº¯Êý£¬³ÆÎªÔËËã·ûº¯Êý¡£ÔËËã·ûÖØÔØ¾ÍÊǺ¯ÊýÖØÔØµÄÒ»ÖÖÌØÊâÇé¿ö¡£Ïñ¶Ô´ýÒ»°ãÖØÔØº¯ÊýÒ»Ñù£¬±àÒëϵͳÄܹ»ÒÀ¾ÝʹÓÃÔËËã·ûµÄ²»Í¬»·¾³£¬¼´²ÎÊý£¨²Ù×÷Êý£©µÄÊýÁ¿»òÀàÐ͵IJîÒì£¬Çø·ÖͬһÔËËã·ûµÄ²»Í¬º¬Òå¡£
¡°ÔËËã·ûÖØÔØ¡±ÊÇÕë¶ÔC£«£«ÖÐÔÓÐÔËËã·û½øÐе쬲»¿ÉÄÜͨ¹ýÖØÔØ´´Ôì³öеÄÔËËã·û¡£³ýÁË.¡¢.*¡¢->*¡¢£º£º¡¢£¿£ºÕâÎå¸öÔËËã·ûÍ⣬ÆäËûÔËËã·û¶¼¿ÉÒÔÖØÔØ¡£ÓÉÓںܶà·ûºÅÊÇÒ»ÔªÔËËã·ûºÍ¶þÔªÔËËã·û¹«Óõģ¬ÎªÁ˱ÜÃ⺬»ì£¬²»µÃÎªÖØÔØµÄÔËËã·ûº¯ÊýÉèÖÃĬÈÏÖµ£¬µ÷ÓÃʱҲ¾Í²»µÃÊ¡ÂÔʵ²Î¡£
³ýÁËnewºÍdeleteÕâÁ½¸ö½ÏÎªÌØÊâÔËËã·ûÒÔÍ⣬ÈκÎÔËËã·ûÈç¹û×÷Ϊ³ÉÔ±º¯ÊýÖØÔØÊ±²»µÃÖØÔØÎª¾²Ì¬º¯Êý¡£=¡¢[ ]¡¢£¨£©¡¢->ÒÔ¼°ËùÓеÄÀàÐÍת»»ÔËËã·ûÖ»ÄÜ×÷Ϊ³ÉÔ±º¯ÊýÖØÔØ£¬¶øÇÒ²»ÄÜÊÇÕë¶Ôö¾ÙÀàÐͲÙ×÷ÊýµÄÖØÔØ¡£
ÔËËã·ûº¯ÊýµÄº¯ÊýÃûÊÇÓÉÔËËã·ûǰ¼Ó¹Ø¼ü×Öoperator¹¹³ÉµÄ£¬ÔÚÉùÃ÷ÔËËã·û»òµ÷ÓÃÔËËã·ûʱ¶¼¿ÉÒÔÓÃÕâ¸öÃû³Æ¡£
8.2 µä·¶ÔËËã·ûµÄÖØÔØ 1.¹ØÓÚ·ÖÊýÀàfraction
fractionµÄÉùÃ÷ºÍ¶¨Òå°üº¬ÔÚÍ·Îļþfraction.hºÍ³ÌÐòÎļþfraction.cppÖС£ Ò»¸ö±ê×¼µÄÓÃfraction±íʾµÄ·ÖÊýÐëÂú×ãÒÔϸ´Ó¡¼þ£º ¢Ù·ÖĸÓÀԶΪÕý£¬·ÖÊýºÍ·ûºÅÓ÷Ö×Ó±íʾ£» ¢Ú·Ö×Ó·Öĸ»¥ÖÊ£¬¼´×ܱíʾΪ×î¼ò·ÖÊý¡£
Fractionͨ¹ýÁ½¸ö˽ÓÐÊý¾Ý³ÉÔ±numºÍden·Ö±ð±£´æ·Ö×ӺͷÖĸ£¬²¢ÔÚ±ØÒªÊ±µ÷ÓÃstandardizeº¯Êý½øÐбê×¼»¯´¦Àí£¬ÒÔʹnumºÍdenµÄÖµÂú×ã±ê×¼·ÖÊýµÄÌõ¼þ¡£GcdÊÇÇóÁ½¸öÕûÊýµÄ×î´ó¹«Ô¼ÊýµÄº¯Êý£¬standardizeÔÚ»¯¼ò·ÖÊýʱҪµ÷ÓÃËü¡£ 2.ÖØÔØÈ¡¸ºÔËËã·û¡°-¡±
ÒòΪfractionÓ÷Ö×ӵķûºÅ´ú±íÕû¸ö·ÖÊýµÄ·ûºÅ£¬Òò´ËËùν¡°È¡¸º¡±Ö»Ðè¶Ô·Ö×ÓnumÈ¡¸º¾Í¿ÉÒÔÁË¡£ÓÉÓÚÈ¡¸ºÔËËã·û¡°-¡±ÊÇÒ»ÔªÔËËã·û£¬µ±×÷Ϊ³ÉÔ±º¯ÊýÖØÔØÊ±²ÎÊý±íÖÐûÓвÎÊý£¬ÄǸöΨһµÄ²Ù×÷ÊýÒÔthisÖ¸ÕëµÄÐÎʽÒþ²ØÔÚ²ÎÊý±íÖС£Îª´Ë£¬Ö»ÐèÒªÔÚfraction.hµÄÀàÉùÃ÷ÖÐÔö¼Ó£º
fraction poerator -()const { return fraction(-num£¬den)£»}
¾Í¿ÉÒÔÁË¡£ÓÉÓÚÔÚÀàÉùÃ÷ÖÐÖ±½Ó¸ø³öÁËÍêÕû¶¨Ò壬Òò´ËÊÇÒ»¸öinlineº¯Êý¡£
¡°-¡±ÊÇÒ»¸öµäÐ͵ÄÒ»ÔªÔËËã·û£¬³ý£«£«¡¢--ÍâµÄÆäËûÒ»ÔªÔËËã·ûµÄÖØÔØ¶¼¿ÉÒԲο¼ÕâÀïÃèÊöµÄ·½·¨¡£
3.ÖØÔØ¼Ó·¨ÔËËã·û¡°+¡±
¡°+¡±ÊÇÒ»¸ö¶þÔªÔËËã·û£¬Òò´Ë×÷Ϊ³ÉÔ±º¯ÊýÖØÔØÊ±²ÎÊý±íÖÐÖ»ÓÐÒ»¸ö²ÎÊý£¬¶ÔÓ¦ÓÚµÚ¶þ²Ù×÷Êý£¬¶øµÚÒ»²Ù×÷Êý¾ÍÊǶÔÏó±¾Éí£¬½öÒÔthisÖ¸ÕëµÄÐÎʽÒþ²ØÔÚ²ÎÁéÃô±íÖС£ ¡°+¡±ÊÇÒ»¸öµäÐ͵ĶþÔªÔËËã·û£¬³ý¸³ÖµÀàÔËËã·ûÍâµÄÆäËû¶þÔªÔËËã·ûµÄÖØÔØ¶¼¿ÉÒԲο¼ÕâÀïÃèÊöµÄ·½·¨¡£ 4.ÖØÔØÔö1ÔËËã·û¡°++¡±
++¼È¿ÉÒÔÊÇǰ׺ÔËËã·û£¨Ç°Ôö1£©£¬ÓÖ¿ÉÒÔÊǺó׺ÔËËã·û£¨ºóÔö1£©¡£ÎªÁËÇø·ÖÕâÁ½ÖÖÇé¿ö£¬ÖØÔØÕâÁ½¸öÔËËã·ûʱ±ØÐëÔÚ¸ñʽÉÏÓÐËùÇø±ð£ºÖØÔغó׺++ʱ±ØÐë¶àÒ»¸öÐéÄâ²ÎÊý£ºint£¬Òò´Ë´ÓÐÎʽÉÏ¿´ÏñÊÇÒ»¸ö¶þÔªÔËËã·ûÖØÔØ¡£ 5.ÖØÔØÀàÐÍת»»·û¡°long¡±
ÀàÐÍת»»·û±ØÐë×÷Ϊ³ÉÔ±º¯ÊýÖØÔØ¡£ÔÚÖØÔØÀàÐÍת»»·ûʱ£¬ÓÉÓÚÔËËã·û±¾ÉíÒѾ±íʾ³ö·µ»ØÖµÀàÐÍ£¬Òò´Ë²»ÐèÒª·µ»ØÖµÀàÐ͵ÄÉùÃ÷¡£Ò»¸ö·ÖÊý¿ÉÒÔ¿´³ÉÊÇÓÉÒ»¸öÕûÊý²¿·ÖºÍÒ»¸ö´¿·ÖÊý²¿·Ö×é³ÉµÄ£¬ÎªÁËÈ¡µÃÒ»¸ö·ÖÊýµÄÕûÊý²¿·Ö£¬¿ÉΪfractionÖØÔØÀàÐÍת»»·ûlong¡£Îª´Ë¿ÉÔÚfraction.hµÄÀàÉùÃ÷ÖÐÔö¼Ó£º opertator long()const { return num/den£»} 6.ÖØÔØ¸³ÖµÔËËã·û¡°=¡±
¸³ÖµÔËËã·ûÖ»ÄÜ×÷Ϊ³ÉÔ±º¯ÊýÖØÔØ¡£
³£¼ûµÄÕæÕýÐèÒªÖØÔØ¸³ÖµÔËËã·ûµÄÇé¿öÊÇ£ºÀàÖаüº¬Ö¸Ïò¶¯Ì¬¿Õ¼äµÄÖ¸Õë ¸³ÖµÔËËã·û=µÄÖØÔØÓ¦×¢ÒâÒÔϼ¸µã£º
¢Ù·µ»ØÖµÉùÃ÷ΪÒýÓ㬶øº¯ÊýÌåÖÐ×ÜÊÇÓÃÓï¾äreturn *this£»·µ»Ø£»
¢ÚÈç¹û²ÎÊý±»ÉùÃ÷ΪָÏòͬÀà¶ÔÏóµÄÒýÓûòÖ¸Õ룬ӦÅбðËùÖ¸Ïò¶ÔÏóµÄÊÇ·ñÓë±»¸³Öµ¶ÔÏóΪͬһ¶ÔÏó£¬Èç¹ûÊÇ£¬Á¢¼´·µ»Ø£¬²»×öÈκθ³Öµ´¦Àí£»
¢ÛÈç¹û±»¸³Öµ¶ÔÏóÕ¼ÓÃÁ˶¯Ì¬¿Õ¼ä»òÆäËû×ÊÔ´£¬Ó¦Ê×ÏÈÊÍ·ÅÕâЩ×ÊÔ´£¬ÒÔ±ã½ÓÊÕеÄ×ÊÔ´£»
¢ÜÈç¹û²ÎÊý±»ÉùÃ÷ΪָÕë»òÒýÓã¬Í¨³£Ó¦¼ÓÉÏconstÐÞÊΣ» ¢ÝÈç¹û²ÎÊý±»ÉùÃ÷ΪָÕ룬ӦÅбðÊÇ·ñΪ¿Õ£¬ÒÔ±ã×ö³öÌØÊâ´¦Àí£»