±ê×¼»¯Óë¹æ·¶
17c.c++µÄ±ê×¼»¯Àú³ÌÒ²ÊÇÆäÀֳɵÄÖ÷ÒªÔµ¹ÊÔÓÉÖ®Ò»¡£ISO/IEC14882±ê׼ȷ±£ÁËÕâÃÅÓïÑÔµÄÒ»ÖÂÐÔºÍÆÕ±éÊÊÓÃÐÔ¡£´ÓC++98µ½C++11¡¢C++14¡¢C++17£¬Ã¿Ò»´Î?µÄ±ê×¼¸üж¼´øÀ´ÁËеÄÌØÕ÷ºÍÓÅ»¯£¬Ê¹µÃ17c.c++ÔÚ¹¦Ð§ÉÏһֱǰ½ø¡£
ÕâÒ»±ê×¼»¯Àú³Ì£¬²»µ«°ü¹ÜÁËÓïÑÔµÄÎȹÌÐԺͿɿ¿ÐÔ£¬»¹ÎªÈ«Çò¿ª·¢ÕßÌṩÁËͳһµÄÊÖÒչ淶¡£
ʹÓÃÖÇÄÜÖ¸Õë×èÖ¹ÄÚ´æ×ß©ºÍÐü¿ÕÖ¸Õë
ÖÇÄÜÖ¸ÕëÊÇÏÖ´úC++±à³ÌµÄÍÆ¼öʵ¼ù£¬¿ÉÒÔ×Ô¶¯¹ÜÀíÄڴ棬×èÖ¹ÄÚ´æ×ß©ºÍÐü¿ÕÖ¸Õë¡£
std::unique_ptr£º¶ÀÍÌËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚµ¥¶ÀÓµÓеÄ×ÊÔ´¡£
std::shared_ptr£º¹²ÏíËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚ¶à¸ö¹¤¾ß¹²Ïí×ÊԴʱʹÓá£
std::weak_ptr£ºÈõÒýÓ㬲»»áÓ°Ï칤¾ßµÄÉúÃüÖÜÆÚ£¬ÓÃÓÚ±ÜÃâÑ»·ÒýÓá£
ÀýÈ磺
#includevoidexample(){std::unique_ptrptr=std::make_unique(10);std::shared_ptrshared_ptr=std::make_shared(20);}
½â¾öÒªÁ죺ÔÚÏÖ´úC++±à³ÌÖУ¬Ö»¹ÜʹÓÃÖÇÄÜÖ¸ÕëÈ¡´úÂãÖ¸Õ룬Ìá¸ß´úÂëµÄ?Çå¾²ÐԺͿÉά»¤ÐÔ¡£
Ó°ÏìÓëδÀ´
17c.c++¶ÔÏÖ´úÅÌËã»ú¿ÆÑ§µÄÓ°ÏìÊÇÉîÔ¶µÄ¡£Ëü²»µ«ËÜÔìÁËÈí¼þ¿ª·¢µÄÆ«Ïò£¬»¹¶ÔÕû¸öÊÖÒÕÐÐÒµ±¬·¢ÁËÆÕ±éÓ°Ï졣δÀ´£¬Ëæ×ÅÅÌËã»úÊÖÒյĽøÒ»²½Éú³¤£¬17c.c++½«¼ÌÐøÔÚеÄ?ÁìÓòÖÐʩչ×÷Óã¬ÎªÈËÀàµÄ¿Æ¼¼Ç°½øÐ¢Ë³Á¦Á¿¡£
17c.c++²¢·ÇÒ»ÈËÖ®±Ê?£¬¶øÊÇÒ»¸öÕûÌåÖǻ۵Ľᾧ¡£ËüµÄ½µÉúºÍÉú³¤£¬Àë²»¿ªÎÞÊý¿ª·¢ÕߺÍÑо¿Ö°Ô±µÄ²»Ð¸Æð¾¢ºÍ¹±Ïס£Ëü²»µ«Íƶ¯ÁËÊÖÒÕǰ½ø£¬»¹ÎªÈ«ÇòµÄÅÌËã»ú¿ÆÑ§Éú³¤×ö³öÁËÖØ´óТ˳¡£ÔÚÕâÌõ̽Ë÷ÅÌËã»ú¿ÆÑ§µÄõè¾¶ÉÏ£¬17c.c++½«¼ÌÐøÒýÁìÎÒÃÇǰÐУ¬´øÀ´¸ü¶àµÄÁ¢ÒìºÍ¿ÉÄÜÐÔ¡£
ÔÚ̽Ë÷17c.c++µÄÌìÏÂʱ£¬ÎÒÃDz»µ«ÊÇÔÚä¯ÀÀÒ»Ãűà³Ì?ÓïÑÔµÄ÷ÈÁ¦£¬¸üÊÇÔÚÌåÑéÒ»¸ö¼¯¶àÈËÖÇ»ÛÓÚÒ»ÉíµÄ?ÐÛΰ¹¤³Ì¡£±¾ÎĽ«´øÄúÉîÈëÏàʶÕâһΰ´óµÄÏîÄ¿£¬Õ¹ÏÖÆä±³ºóµÄ¹ÊʺÍÓ°Ï죬̽ÌÖËüÔõÑù³ÉΪÏÖ´úÅÌËã»ú¿ÆÑ§µÄÖ÷Òª×é³É²¿·Ö¡£
ÉîÈëÃ÷È·¶à̬ºÍÐ麯Êý
¶à̬ÊÇÃæÏò¹¤¾ß±à³ÌµÄ½¹µãÌØÕ÷Ö®Ò»£¬C++ͨ¹ý¼ÌÐøºÍÐ麯ÊýʵÏÖ¶à̬¡£
Ð麯Êý£¨VirtualFunction£©£ºÔÚ»ùÀàÖÐÉùÃ÷ΪÐ麯ÊýµÄº¯Êý£¬¿ÉÒÔÔÚÅÉÉúÀàÖб»ÖØÐ´¡£ÕâʹµÃ³ÌÐò¿ÉÒÔÔÚÔËÐÐʱƾ֤ÏÖʵ¹¤¾ßµÄÀàÐÍŲÓÃ׼ȷµÄº¯Êý¡£
Ðé±í£¨V-Table£©£ºC++µ×²ãͨ¹ýÐé±íʵÏÖÐ麯ÊýµÄ¶à̬ÐÔ¡£Ã¿¸ö°üÀ¨Ð麯ÊýµÄÀà¶¼»áÓÐÒ»¸öÓëÖ®¹ØÁªµÄÐé±í¡£
½â¾öÒªÁ죺ÔÚÉè¼ÆÀàÌõÀí½á¹¹Ê±£¬Ö»¹ÜʹÓÃÐ麯ÊýºÍ´¿Ð麯Êý£¨PureVirtualFunction£©£¬×èÖ¹ÀàµÄñîºÏ¶È¹ý¸ß£¬Ìá¸ß´úÂëµÄ¿ÉÀ©Õ¹ÐÔ¡£
У¶Ô£ºËÎÏþ¾ü(6cEOas9M38Kzgk9u8uBurka8zPFcs4sd)



