¼¼Êõ¸ïÐÂ
17c.c++µÄ³öÏÖ±êÖ¾×żÆËã»ú±à³ÌÁìÓòµÄ?Ò»´ÎÖØ´ó¸ïС£ËüÒýÈëÁËÃæÏò¶ÔÏó±à³Ì£¨OOP£©µÄ¸ÅÄʹµÃ³ÌÐòÉè¼Æ¸ü¼Ó�£¿é»�¡¢¿ÉÀ©Õ¹ºÍ¿Éά»¤¡£ÕâÒ»¸ïв»½öÌá¸ßÁËÈí¼þ¿ª·¢µÄЧÂÊ£¬»¹Îª¼ÆËã»ú¿ÆÑ§µÄ?·¢Õ¹ÌṩÁËеÄ˼·ºÍ·½·¨¡£ÔÚÕâÒ»¹ý³Ì?ÖУ¬17c.c++²»½öÔÚ¼¼Êõ²ãÃæÉÏÈ¡µÃ?ÁËÍ»ÆÆ£¬Ò²ÔÚÀíÄîÉ϶Աà³Ì?ÁìÓò²úÉúÁËÉîÔ¶Ó°Ïì¡£
×ñÑRAIIÔÔò
RAII£¨ResourceAcquisitionIsInitialization£©ÊÇC++ÖеÄÒ»ÖÖ×ÊÔ´¹ÜÀíģʽ¡£ËüÖ¸µÄÊÇÔÚ×ÊÔ´µÄ»ñȡʱ¾Í³õʼ»¯¸Ã×ÊÔ´£¬²¢ÔÚ×ÊÔ´µÄÉúÃüÖÜÆÚ½áÊøÊ±½øÐÐÊÍ·Å¡£RAIIͨ¹ýÓë¶ÔÏóµÄÉúÃüÖÜÆÚ°ó¶¨×ÊÔ´¹ÜÀí£¬±ÜÃâÁËÊÖ¶¯¹ÜÀí×ÊÔ´µÄÂé·³¡£
ÉîÈëÀí½â¶à̬ºÍÐ麯Êý
¶à̬ÊÇÃæÏò¶ÔÏó±à³ÌµÄºËÐÄÌØÐÔÖ®Ò»£¬C++ͨ¹ý¼Ì³ÐºÍÐ麯ÊýʵÏÖ¶à̬¡£
Ð麯Êý£¨VirtualFunction£©£ºÔÚ»ùÀàÖÐÉùÃ÷ΪÐ麯ÊýµÄº¯Êý£¬¿ÉÒÔÔÚÅÉÉúÀàÖб»ÖØÐ´¡£ÕâʹµÃ³ÌÐò¿ÉÒÔÔÚÔËÐÐʱ¸ù¾Ýʵ¼Ê¶ÔÏóµÄÀàÐ͵÷ÓÃÕýÈ·µÄº¯Êý¡£
Ðé±í£¨V-Table£©£ºC++µ×²ãͨ¹ýÐé±íʵÏÖÐ麯ÊýµÄ¶à̬ÐÔ¡£Ã¿¸ö°üº¬Ð麯ÊýµÄÀà¶¼»áÓÐÒ»¸öÓëÖ®¹ØÁªµÄÐé±í¡£
½â¾ö·½·¨£ºÔÚÉè¼ÆÀà²ã´Î½á¹¹Ê±£¬¾¡Á¿Ê¹ÓÃÐ麯ÊýºÍ´¿Ð麯Êý£¨PureVirtualFunction£©£¬±ÜÃâÀàµÄñîºÏ¶È¹ý¸ß£¬Ìá¸ß´úÂëµÄ?¿ÉÀ©Õ¹ÐÔ¡£
ÀýÈ磺
#includevoidexample(){std::unique_ptrptr=std::make_unique(10);std::shared_ptrshared_ptr=std::make_shared(20);}
½â¾ö·½·¨£ºÔÚÏÖ´úC++±à³ÌÖУ¬¾¡Á¿Ê¹ÓÃÖÇÄÜÖ¸Õë´úÌæÂãÖ¸Õ룬Ìá¸ß´úÂëµÄ°²È«ÐԺͿÉά»¤ÐÔ¡£
¼¯ÌåÖǻ۵Ľᾧ
17c.c++µÄ³É¹¦²»ÊÇÓɵ¥Ò»µÄÌì²ÅËù´´Ô죬¶øÊÇÖڶ࿪·¢ÕߺÍÑо¿ÈËÔ±µÄ?¹²Í¬Å¬Á¦¡£Ëü²»½öÎüÊÕÁËǰÈ˵Ä?¾ÑéºÍ½Ìѵ£¬¸üÈÚºÏÁËÀ´×ÔÊÀ½ç¸÷µØ?µÄ´´ÐÂ˼Ïë¡£ÎÞÊý³ÌÐòÔ±ÔÚ´úÂë±àд¡¢µ÷ÊÔºÍÓÅ»¯Öв»¶ÏΪÕâÃÅÓïÑÔ¹±Ï×Öǻۣ¬Ê¹Æä²»¶Ï½ø»¯¡£Ã¿Ò»¸ö°æ±¾µÄ¸üУ¬Ã¿Ò»¸öÐÂÌØÐÔµÄÒýÈ룬¶¼ÊǼ¯ÌåÖǻ۵Ľᾧ¡£
У¶Ô£ºÕŰ²ÄÝ(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


