ÉçÇøÓ뿪ԴТ¾´
C++ÉçÇøÔÚÈ«Çò¹æÄ£ÄÚ»îÔ¾£¬ÖÖÖÖ±à³ÌÂÛ̳¡¢É罻ýÌåȺ×éºÍÏßÏÂÔ˶¯¶¼ÎªC++ϲºÃÕßÌṩÁ˽»Á÷ºÍѧϰµÄƽ̨¡£Í¨¹ýÕâЩÉçÇø£¬³ÌÐòÔ±ÃÇ¿ÉÒÔ·ÖÏí¾Ñé¡¢½â¾öÎÊÌ⣬ÉõÖÁÅäºÏ¼ÓÈ뿪ԴÏîÄ¿µÄ¿ª·¢¡£ÕâЩÔ˶¯²»µ«Ôö½øÁËC++¼¼ÊõµÄÁ÷´«£¬»¹ÎªÐÂÒ»´ú³ÌÐòÔ±ÌṩÁËѧϰºÍÉú³¤µÄʱ»ú¡£
ÀýÈ磬Îļþ²Ù×÷£º
#includevoidreadFile(conststd::string&filename){std::ifstreamfile(filename);if(!file.is_open()){throwstd::runtime_error("Failedtoopenfile");}std::stringline;while(std::getline(file,line)){std::cout<
ÔÚÉÏÊö´úÂëÖУ¬Îļþ¹¤¾ßÔÚº¯ÊýŲÓÃʱ±»³õʼ»¯£¬Îļþ¹Ø±ÕʱÓÉÎö¹¹º¯Êý×Ô¶¯Å²Óã¬ÕâÊÇRAIIµÄµä·¶Ó¦Óá£
ʹÓÃÖÇÄÜÖ¸Õë±Ü?ÃâÄÚ´æÐ¹Â©ºÍÐü¿ÕÖ¸Õë
ÖÇÄÜÖ¸ÕëÊÇÏÖ´ú?C++±à³ÌµÄÍÆ¼öʵ¼ù£¬¿ÉÒÔ×Ô¶¯ÖÎÀíÄÚ´æ?£¬ÖÆÖ¹ÄÚ´æÐ¹Â©ºÍÐü¿ÕÖ¸Õë¡£
std::unique_ptr£º¶ÀÍÌËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚµ¥¶ÀÓµÓеÄ×ÊÔ´¡£
std::shared_ptr£º¹²ÏíËùÓÐȨµÄÖÇÄÜÖ¸Õ룬ÊÊÓÃÓÚ¶à¸ö¹¤¾ß¹²Ïí×ÊԴʱʹÓá£
std::weak_ptr£ºÈõÒýÓ㬲»»áÓ°Ï칤¾ßµÄÉúÃüÖÜÆÚ£¬ÓÃÓÚ±ÜÃâÑ»·ÒýÓá£
½ÌÓýÓëÅàѵ
ÔÚÅÌËã»ú½ÌÓýÖУ¬17c.c++ÎÞÒÉÊÇÒ»ÃűØÐ޵ıà³ÌÓïÑÔ¡£Ðí¶àÅÌËã»ú¿ÆÑ§¿Î³ÌÖУ¬C++¶¼ÊDZØÐ޵ıà³Ì?ÓïÑÔ¡£Ëü²»µ«×ÊÖúѧÉúÀí½âÅÌËã»úµÄµ×²ãÔÀí£¬»¹ÅàÑøÁËËûÃǵıà³Ì˼άϢÕù¾öÎÊÌâµÄÄÜÁ¦¡£Í¨¹ýѧϰ17c.c++£¬Ñ§ÉúÄܹ»¸üºÃµØÕÆÎÕÅÌËã»ú¿ÆÑ§µÄ½¹µã¿´·¨£¬ÎªÎ´À´µÄÖ°ÒµÉú³¤´òϼáʵ»ù´¡¡£
×ñÑRAIIÔÔò
RAII£¨ResourceAcquisitionIsInitialization£©ÊÇC++ÖеÄÒ»ÖÖ×ÊÔ´ÖÎÀíģʽ¡£ËüÖ¸µÄÊÇÔÚ×ÊÔ´µÄ»ñȡʱ¾Í³õʼ»¯¸Ã×ÊÔ´£¬²¢ÔÚ×ÊÔ´µÄÉúÃüÖÜÆÚ½áÊøÊ±½øÐÐÊÍ·Å¡£RAIIͨ¹ýÓ빤¾ßµÄÉúÃüÖÜÆÚ°ó¶¨×ÊÔ´ÖÎÀí£¬ÖÆÖ¹ÁËÊÖ¶¯ÖÎÀí×ÊÔ´µÄÂé·³¡£
¼¼Êõ½ø²½?µÄÍÆ¶¯Õß
17c.c++²»¿ÉÊÇÒ»ÃÅÓïÑÔ£¬¸üÊÇÍÆ¶¯¼¼Êõ½ø²½µÄÖØÒªÁ¦Á¿¡£ËüµÄ·ºÆð¼«´óµØÌáÉýÁËÈí¼þ¿ª·¢µÄ?ЧÂÊ£¬Ê¹µÃ?ÅÓ´óµÄÅÌËãÈÎÎñÄܹ»¸ßËÙÔËÐС£´ÓÔçÆÚµÄ?ϵͳ±à³Ì?µ½ÏÖ´úµÄ¶àýÌå¡¢ÍøÂçºÍÈ˹¤ÖÇÄÜÓ¦Óã¬17c.c++¶¼·¢»ÓÁËÖØÒª×÷Óá£ËüΪÖÚ¶àÐÐÒµµÄ¼¼ÊõÉú³¤ÌṩÁ˼áʵµÄ»ù´¡£¬³ÉΪÏÖ´úÅÌËã»ú¿ÆÑ§µÄÖØÒª×é³É²¿·Ö¡£
ʹÓ÷¶Ê½»¯½á¹¹º¯Êý
ÔÚC++ÖУ¬½á¹¹º¯ÊýµÄʹÓúÜÊÇÖØÒª¡£·¶Ê½»¯½á¹¹º¯Êý£¨Ò²³Æ?Ϊ¹æ·¶»¯½á¹¹º¯Êý£©ÊÇÖ¸×ñÑÒ»¶¨¹æÔò½øÐнṹº¯ÊýµÄÉè¼Æ£¬Ä¿µÄÊÇʹ´úÂë¸ü¼ò½à¡¢¸üÒ×¶Á¡¢¸üÒ×ά»¤¡£
³õʼ»¯ÁÐ±í£ºÊ¹Óóõʼ»¯ÁÐ±í½øÐгÉ?Ô±±äÁ¿µÄ³õʼ»¯£¬¿ÉÒÔÖÆÖ¹¶à´Î¸³Öµ£¬Ìá¸ß´úÂëЧÂÊ¡£
ÖÆÖ¹ÖØ¸´´úÂ룺ͨ¹ýʹÓýṹº¯ÊýµÄ³õʼ»¯ÁбíºÍ³ÉÔ±³õʼ»¯ÁÐ±í£¬¿ÉÒÔ±Ü?ÃâÖØ¸´´úÂ룬Ìá¸ß´úÂëµÄ¿Éά»¤ÐÔ¡£
У¶Ô£º·½±£ƒS(p6mu9CWFoIx7YFddy4eQTuEboRc9VR7b9b)


