17c.c++²¢·ÇÒ»ÈËÖ®±Ê±Ü¿ÓÖ¸ÄÏ£º¸ßƵÎóÇøÓëÕýÈ··­¿ª·½·¨

À´Ô´£ºÖ¤È¯Ê±±¨Íø×÷Õߣº
×ÖºÅ

ʹÓÃÖÇÄÜÖ¸ÕëÈ¡´úÂãÖ¸Õë

ÔÚÏÖ´úC++±à³ÌÖУ¬ÖÇÄÜÖ¸ÕëÊÇÄÚ´æÖÎÀíµÄÍÆ¼ö·½·¨¡£ÖÇÄÜÖ¸Õë»áÔÚ¹¤¾ßÉú´æÖÜÆÚ½áÊøÊ±×Ô¶¯ÊÍ·ÅÄÚ´æ£¬ÖÆÖ¹ÁËÄÚ´æÐ¹Â©ºÍÐü¿ÕÖ¸Õë¡£

std::unique_ptr£º¶ÀÍÌËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚµ¥?¶ÀÓµÓеÄ×ÊÔ´¡£

std::shared_ptr£º¹²ÏíËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚ¶à¸ö¹¤¾ß¹²Ïí×ÊԴʱʹÓá£

std::weak_ptr£ºÈõÒýÓ㬲»»áÓ°Ï칤¾ßµÄÉúÃüÖÜÆÚ£¬ÓÃÓÚ±ÜÃâÑ­»·ÒýÓá£

ʹÓÃÖÇÄÜÖ¸Õ룬¿ÉÒÔ´ó´ó¼õÉÙÄÚ´æÖÎÀíÏà¹ØµÄ¹ýʧ£¬Ìá¸ß´úÂëµÄ¿Éά»¤ÐÔ¡£

ÀýÈ磺

templateTmax(Ta,Tb){return(a>b)?a:b;}intmain(){std::cout<<"Maxof10and20is"<(10,20)<(10.5,20.5)<

½â¾öÒªÁ죺ÔÚÉè¼ÆÍ¨ÓÃËã·¨ºÍÊý¾Ý½á¹¹Ê±£¬¾¡Á¿Ê¹ÓÃÄ£°å£¬Ìá¸ß´úÂëµÄ¿ÉÖØÓÃÐÔºÍÁé»îÐÔ¡£

ÓïÑԵĻù´¡ÓëÑݱä

C++µÄǰÉíÊÇCÓïÑÔ£¬Óɵϰ²¡¤ÌÀÄ·ÁÖÉ­ÔÚ1970Äê´úÖÐÆÚÓÚ±´¶ûʵÑéÊÒ¿ª·¢¡£CÓïÑÔÒÔÆä¼ò½à¡¢¸ßЧºÍͨÓÃÐÔѸËÙÔÚÅÌËã»ú¿ÆÑ§½çÁ÷ÐпªÀ´¡£Ëæ×ÅÈí¼þÐèÇóµÄ²»¾øÔö³¤£¬´¿´âµÄCÓïÑÔ¿ªÊ¼ÏÔµÃÁ¦²»´ÓÐÄ¡£BjarneStroustrupÔÚ1979Ä꿪ʼ×ÅÊÖÉè¼ÆÒ»ÖÖеıà³ÌÓïÑÔ£¬Õâ¾ÍÊÇC++µÄÃÈÑ¿¡£

¶ÔÄÚ´æÖÎÀíµÄÎó½â

C++ÊÇÒ»ÃÅÐèÒªÊÖ¶¯ÖÎÀíÄÚ´æµÄÓïÑÔ¡£Ðí¶à³õѧÕßÍùÍù»áÒòΪ¶ÔÄÚ´æÖÎÀíµÄ²»²Ç½â¶ø³ö´í?¡£³£¼ûµÄ´í?Îó°üÀ¨£º

Ðü¿ÕÖ¸Õ루DanglingPointer£©£ºÔÚÊÍ·ÅÄÚ´æÖ®ºó£¬Èç¹û»¹³ÖÓÐÖ¸Ïò¸ÃÄÚ´æµÄÖ¸Õ룬Õâ¾Í»áµ¼ÖÂÐü¿ÕÖ¸Õë¡£Ðü¿ÕÖ¸Õë¿ÉÄÜ»áÒý·¢Î´½ç˵ÐÐΪ¡£

ÄÚ´æÐ¹Â©£¨MemoryLeak£©£ºµ±³ÌÐòÔÚÊÍ·ÅÄÚ´æÊ±£¬Íü¼Ç»òÕßûÓÐÊÍ·ÅÄڴ棬µ¼ÖÂÄÚ´æÎÞ·¨±»ÔÙ´ÎʹÓá£

Ë«ÖØÊÍ·Å£¨DoubleFree£©£ºÔÚÊÍ·ÅÄÚ´æºó£¬ÔÙ´ÎʵÑéÊÍ·Åͬһ¿éÄڴ棬ÕâÊÇÒ»ÖÖÖÂÃüµÄ¹ýʧ¡£

½â¾öÒªÁ죺½¨Ò龡Á¿Ê¹Óñê×¼¿âÖеÄÈÝÆ÷£¨Èçvector¡¢listµÈ£©ºÍÖÇÄÜÖ¸Õ루Èçstd::uniqueptr¡¢std::sharedptrµÈ£©£¬ÕâЩ¹¤¾ßÄܹ»×ÊÖúÄã¸üºÃµØÖÎÀíÄÚ´æ£¬ÖÆÖ¹³£¼ûµÄÄÚ´æÖÎÀíÎÊÌâ¡£

ʹÓÃÖÇÄÜÖ¸ÕëÖÆÖ¹ÄÚ´æ?й©ºÍÐü¿ÕÖ¸Õë

ÖÇÄÜÖ¸ÕëÊÇÏÖ´úC++±à³ÌµÄÍÆ¼öʵ¼ù£¬¿ÉÒÔ×Ô¶¯ÖÎÀíÄÚ´æ£¬ÖÆÖ¹ÄÚ´æÐ¹Â©ºÍÐü¿ÕÖ¸Õë¡£

std::unique_ptr£º¶ÀÍÌËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚµ¥¶ÀÓµÓеÄ×ÊÔ´¡£

std::shared_ptr£º¹²ÏíËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚ¶à¸ö¹¤¾ß¹²Ïí×ÊԴʱʹÓá£

std::weak_ptr£ºÈõÒýÓ㬲»»áÓ°Ï칤¾ßµÄÉúÃüÖÜÆÚ£¬ÓÃÓÚ±ÜÃâÑ­»·ÒýÓá£

×ܽáÓëÕ¹Íû

ÔÚÕâÆªÎÄÕ¡¶17c.c++:²¢·ÇÒ»ÈËÖ®±Ê±Ü¿ÓÖ¸ÄÏ£º¸ßƵÎóÇøÓëÕýÈ··­¿ª·½·¨¡·ÖУ¬ÎÒÃǽҿªÁËC++±à³ÌÖеó¸ßƵÎóÇø£¬²¢ÌṩÁËһЩʵÓõļ¼ÇɺÍÒªÁ죬×ÊÖúÄúÔÚC++±à³ÌµÄ?ÂóÌÖÐ˳Àû±Ü?¿ª¿Ó¶´£¬ÕýÈ··­¿ª±à³ÌµÄ´óÃÅ¡£

C++ÊÇÒ»ÃÅÅÓ´óÇÒÇ¿´óµÄ±à³ÌÓïÑÔ£¬ÕÆÎÕËü²»µ«ÐèÒªÉîÈëµÄÀí½âÓïÑÔ×Ô¼º£¬»¹ÐèÒª¾­ÑéºÍÖǻۡ£Ï£ÍûÕâÆªÎÄÕÂÄܹ»ÎªÄúÌṩһЩÓмÛÖµµÄÖ¸µ¼£¬×ÊÖúÄúÔÚC++±à³ÌµÄÃÅ·ÉÏÈ¡µÃ¸ü´óµÄ?½ø²½¡£

ףԸÿһλC++±à³ÌϲºÃÕß¶¼ÄÜÔÚ±à³ÌµÄÊÀ½çÖÐÕÒµ½×Ô¼ºµÄλÖ㬴´Á¢³öÔ½·¢¾«²ÊµÄ×÷Æ·£¡

У¶Ô£ºÒ¶Ò»½£(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)

ÔðÈα༭£º ³ÂÊçׯ
ΪÄãÍÆ¼ö
Óû§ÆÀÂÛ
µÇ¼ºó¿ÉÒÔ̸»°
ÍøÓÑÆÀÂÛ½ö¹©Æä±í´ï¸öÈË¿´·¨£¬²¢²»±êÃ÷֤ȯʱ±¨Á¢³¡
ÔÝÎÞÆÀÂÛ