++µÄδÀ´ÓëÌôÕ½
¾¡¹ÜC++ÔÚ¶à¸öÁìÓòÖбíÏÖ³öÉ«£¬µ«ËüÒ²ÃæÁÙ×ÅһЩÌôÕ½¡£Ëæ×ÅÐÂÐËÓïÑÔÈçRustºÍGoµÄáÈÆð£¬C++ÐèÒª²»¶Ï´´Ðº͸Ľø£¬ÒÔ±£³ÖÆä¾ºÕùÁ¦¡£Î´À´µÄC++½«¼ÌÐøÔÚÐÔÄÜÓÅ»¯¡¢Äڴ氲ȫºÍÏÖ´ú±à?³ÌÌØÐÔÉϽøÐиĽø¡£
×ܽ᣺C++µÄ?µ®ÉúºÍ·¢Õ¹£¬ÊǼÆËã»ú¿ÆÑ§Ê·ÉϵÄÒ»¶Î·Ç·²µÄƪÕ¡£´ÓËüµÄÉñÃØÆðÔ´µ½?¹ã·ºÓ¦Óã¬C++²»½ö¸Ä±äÁ˳ÌÐòÉè¼ÆµÄ·½Ê½£¬»¹¶ÔÕû¸ö¼ÆËã»ú¼¼ÊõµÄ½ø²½²úÉúÁËÉîÔ¶Ó°Ïì¡£ÎÞÂÛÊÇϵͳ±à³Ì¡¢ÓÎÏ·¿ª·¢£¬»¹ÊǽðÈÚ¼ÆË㣬C++¶¼Õ¹ÏÖÁËÆäÎÞ¿ÉÌæ´úµÄ¼ÛÖµ¡£ÈÃÎÒÃǼÌÐø¹Ø×¢ºÍѧϰC++£¬ÒÔ½ÒʾËü¸ü¶àµÄÉñÃØÓë¿ÉÄÜ¡£
C++17Ôò´øÀ´Á˸ü¶àµÄ?ÓïÑÔÌØÐÔ£¬Èç±äÁ¿Ä£°å¡¢²¢ÐÐËã·¨¿âµÈ¡£2020ÄêµÄC++20±ê×¼Ôò½øÒ»²½Íƶ¯ÁËC++µÄ·¢Õ¹£¬ÒýÈëÁËcoroutines¡¢conceptsµÈÐÂÌØÐÔ£¬Ê¹µÃC++ÔÚ²¢ÐмÆËãºÍ¸ßÐÔÄܱà³Ì·½Ãæ¾ßÓиüÇ¿µÄ¾ºÕùÁ¦¡£
C++ÔÚÏÖ´úÈí¼þ¿ª·¢ÖеÄÓ¦ÓãºÓÎÏ·¡¢ÏµÍ³±à³ÌºÍǶÈëʽ¿ª·¢C++ÔÚÏÖ´úÈí¼þ¿ª·¢ÖеÄÓ¦Ó÷¶Î§·Ç³£¹ã·º£¬´Óϵͳ±à³Ìµ½¸ßÐÔÄܼÆË㣬´ÓǶÈëʽ¿ª·¢µ½ÓÎÏ·¿ª·¢£¬C++¶¼Õ¹ÏÖ³öÁËÆäÇ¿´óµÄ¹¦ÄܺÍÓÅÔ½µÄÐÔÄÜ¡£
ÔÚϵͳ±à?³ÌÁìÓò£¬C++ÒòÆä¸ßЧµÄÄÚ´æ¹ÜÀíºÍµ×²ã²Ù×÷ÄÜÁ¦£¬³ÉΪ²Ù×÷ϵͳ¡¢Çý¶¯³ÌÐòºÍǶÈëʽϵͳ¿ª·¢µÄÊ×Ñ¡ÓïÑÔ¡£ÀýÈ磬LinuxÄںˡ¢Windows²Ù×÷ϵͳµÈ¶¼¹ã·ºÊ¹ÓÃC++½øÐпª·¢¡£C++µÄµÍ¼¶²Ù×÷ÄÜÁ¦ºÍ¸ßЧÐÔ£¬Ê¹µÃËüÔÚϵͳ±à³ÌÖеõ½Á˹㷺µÄÓ¦Óá£
ÕâÒ»ÌØÐÔ¼«´óµØÌá¸ßÁËC++µÄ±í´ïÄÜÁ¦ºÍÁé»îÐÔ¡£
C++µÄ±ê×¼»¯ºÍ·¢Õ¹£º´ÓC++98µ½ÏÖ´úC++C++µÄ·¢Õ¹Àú³ÌÖУ¬±ê×¼»¯ÊÇÒ»¸öÖØÒªµÄÀï³Ì±®?¡£1990Ä꣬C++Ê״α»Õýʽ±ê×¼»¯£¬ÕâΪC++µÄ¹ã·ºÓ¦Óõ춨ÁË»ù´¡¡£Ëæ×żÆËã»ú¼¼ÊõµÄ²»¶Ï½ø²½£¬C++Ò²ÔÚ²»¶Ï½ø»¯¡£1998Ä꣬C++98±ê×¼·¢²¼£¬ÒýÈëÁËÄ£°å£¨Template£©ºÍ±ê×¼¿â£¨StandardTemplateLibrary,STL£©µÈÐÂÌØÐÔ£¬½øÒ»²½ÌáÉýÁËC++µÄ¹¦ÄܺÍʹÓÃЧÂÊ¡£
½øÈë21ÊÀ¼Íºó£¬C++¼ÌÐø²»¶Ï·¢Õ¹£¬2003ÄêµÄC++03±ê×¼ºÍ2011ÄêµÄC++11±ê×¼Ïà¼Ì·¢²¼¡£C++11ÒýÈëÁËlambda±í´ïʽ¡¢ÖÇÄÜÖ¸Õë¡¢rvalueÒýÓõÈÐÂÌØÐÔ£¬Ê¹µÃC++µÄ±à³Ì·ç¸ñ¸ü¼ÓÏÖ´ú»¯¡¢¼ò½à¡£C++14½øÒ»²½ÍêÉÆÁËC++11µÄÌØÐÔ£¬ÒýÈëÁËauto¹Ø¼ü×ÖºÍconstexprµÈÐÂÌØÐÔ¡£
´úÂëÖÊÁ¿Óë×î¼Ñʵ¼ù
ÔÚѧϰC++¹ý³ÌÖУ¬±£³Ö´úÂëÖÊÁ¿ºÍ×ñÑ×î¼Ñʵ¼ù·Ç³£ÖØÒª¡£Á¼ºÃµÄ±à³Ìϰ¹ßºÍ×î¼Ñʵ¼ùÄܹ»Ìá¸ß´úÂëµÄ¿É¶ÁÐÔ¡¢¿Éά»¤ÐÔºÍÐÔÄÜ¡£
¾ßÌå·½·¨£º×ñÑC++CoreGuidelines£¬Ñ§Ï°ºÍʹÓôúÂë·ç¸ñÖ¸ÄÏ£¨ÈçGoogleC++StyleGuide£©¡£¹Ø×¢´ú?ÂëµÄ¿É¶ÁÐÔ£¬±ÜÃâ¹ý¶È¸´ÔÓµÄÉè¼Æ¡£Ê¹Óþ²Ì¬·ÖÎö¹¤¾ß£¨ÈçClang-Tidy¡¢PVS-Studio£©¼ì²é´úÂëÖÊÁ¿¡£
C++ûÓÐÄÚ´æ¹ÜÀí»úÖÆ
һЩ¿ª·¢ÕßÈÏΪC++ûÓÐÄÚ´æ¹ÜÀí»úÖÆ£¬µ«Êµ¼ÊÉÏC++ÓÐÊÖ¶¯ÄÚ´æ¹ÜÀíºÍ×Ô¶¯ÄÚ´æ¹ÜÀíÁ½ÖÖ·½Ê½¡£STLÖеÄÖÇÄÜÖ¸Õ루Èçstd::sharedptr¡¢std::uniqueptr£©ÌṩÁË×Ô¶¯ÄÚ´æ¹ÜÀí¡£
±Ü¿Ó·½·¨£ºÑ§Ï°ºÍʹÓÃÖÇÄÜÖ¸Õ룬±ÜÃâÄÚ´æÐ¹Â©ºÍÐü¿ÕÖ¸ÕëÎÊÌ⣬Ìá¸ß´úÂëµÄ°²È«ÐԺͿɿ¿ÐÔ¡£
8.ÎóÇø£ºC++µ±È»£¬ÏÂÃæÊÇC++µ®ÉúÒ»¶Î¿çԽʱ¿ÕµÄÊ·Ê«±Ü¿ÓÖ¸Äϵĵڶþ²¿·Ö£¬¼ÌÐøÌ½Ì֏߯µÎóÇø¼°ÆäÕýÈ·´ò¿ª·½Ê½¡£
++µÄÄÚ´æ¹ÜÀí
C++µÄÄÚ´æ¹ÜÀí»úÖÆÊÇÆäµ×²ã²Ù×÷ÄÜÁ¦µÄÌåÏÖ¡£C++ÔÊÐí³ÌÐòÔ±Ö±½Ó²Ù×÷Äڴ棬ͨ¹ýÖ¸Õ루Pointers£©ºÍ¶¯Ì¬·ÖÅ䣨DynamicMemoryAllocation£©À´¹ÜÀíÄÚ´æ¡£ÕâÖÖÖ±½ÓµÄÄÚ´æ?¹ÜÀíÄÜÁ¦£¬Ê¹µÃC++ÔÚ¸ßÐÔÄܺÍϵͳ¼¶±à?³ÌÖбíÏÖ³öÉ«¡£
ÕâÒ²Òâζ×Å¿ª·¢ÕßÐèÒª½÷É÷´¦ÀíÄÚ´æ¹ÜÀí£¬ÒÔ±ÜÃâ³£¼ûµÄÄÚ´æÐ¹Â©ºÍ·ÃÎÊÔ½½çµÈÎÊÌâ¡£
C++µÄ¿çÆ½Ì¨ÌØÐÔʹµÃËüÄܹ»ÔÚ²»Í¬µÄ²Ù×÷ϵͳºÍÓ²¼þƽ̨ÉÏÔËÐУ¬ÕâΪÈí¼þ¿ª·¢´øÀ´Á˼«´óµÄ±ãÀû¡£Î´À´£¬C++½«¼ÌÐøÍÆ¶¯¿çƽ̨¿ª·¢µÄ?·¢Õ¹£¬Ê¹µÃÈí¼þ¿ª·¢¸ü¼Ó¸ßЧ¡¢±ã½Ý¡£Ëæ×ÅÔÆ¼ÆËãºÍ±ßÔµ¼ÆËãµÄÐËÆð£¬C++ÔÚÕâЩÐÂÐËÁìÓòµÄÓ¦ÓÃǰ¾°½«¸ü¼Ó¹ãÀ«¡£Í¨¹ý½áºÏÏÖ´úC++µÄÐÂÌØÐÔºÍÏȽøµÄ±à³Ì·¶Ê½£¬¿ª·¢ÕßÃǽ«Äܹ»¸ü¼Ó¸ßЧµØ¹¹½¨ºÍ²¿Êð·Ö²¼Ê½ÏµÍ³¡£
C++ÉçÇøµÄ³ÖÐø»îÁ¦ºÍ¹±Ï×Ò²½«Íƶ¯ÓïÑԵIJ»¶Ï½ø»¯¡£¿ªÔ´ÏîÄ¿¡¢±ê×¼»¯¹ý³ÌÒÔ¼°Ñ§Êõ½çµÄÑо¿¹¤×÷£¬¶¼ÎªC++µÄ·¢Õ¹ÌṩÁËÔ´Ô´²»¶ÏµÄ¶¯Á¦¡£Ô½À´Ô½¶àµÄ¿ª·¢Õß¼ÓÈëµ½C++µÄÉú̬ϵͳÖУ¬¹²Í¬Íƶ¯×ÅÕâÒ»ÓïÑԵĴ´?ÐÂºÍÆÕ¼°¡£
C++ÊÇÒ»ÖÖ¸´ÔÓµÄÓïÑÔ
Ðí¶àÐÂÊÖÈÏΪC++ÊÇÒ»ÖÖ¸´ÔÓµÄÓïÑÔ£¬ÄÑÒÔÕÆÎÕ¡£ÊÂʵÉÏ£¬C++µÄ»ù´¡Óï·¨ºÍCÓïÑԷdz£ÏàËÆ£¬Ö»ÊÇÔö¼ÓÁËһЩеÄÌØÐÔ¡£¹Ø¼üÔÚÓÚÀí½âÕâЩÐÂÌØÐÔ£¬¶ø²»ÊDZ»Æä¸´ÔÓÐÔËùÏŵ¹¡£
±Ü¿Ó·½·¨£º´Ó»ù´¡¿ªÊ¼£¬ÏÈÕÆÎÕCÓïÑԵĻù±¾Óï·¨£¬È»ºóÖð²½Ñ§Ï°C++µÄÃæÏò¶ÔÏóÌØÐÔ¡£²»?Òª¼±ÓÚÉîÈ룬ÏÈÀí½âÿ¸ö¸ÅÄîµÄ»ù±¾ÔÀí¡£
У¶Ô£º¿µ»Ô(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


