ä¸ãauto_ptr模æ¿
ããauto_pträ¸shared_ptrãunique_ptré½å®ä¹äºç±»ä¼¼æéç对象ï¼å¯ä»¥å°newå°çå°åèµç»è¿ä¸å¯¹è±¡ï¼å½æºè½æéè¿ææ¶ï¼ææå½æ°ä¼è°ç¨deleteå½æ°ï¼å¯¹è±¡å°è¢«éæ¯ï¼ç±æ¤å
åå¯ä»¥èªå¨è¢«éæ¾ã
äºãshared_ptr模æ¿
ããå
ç代ç ï¼
auto_ptr p1 (new string("hello world!");
auto_ptr p2;
p2 = p1;
ããå¨ä»¥ä¸ä»£ç ä¸ï¼p1ä¸p2æååä¸å¯¹è±¡ï¼å¸¸è§æéå¨éæ¾å
åæ¶ï¼ç³»ç»ä¼å°è¯å é¤åä¸å¯¹è±¡ä¸¤æ¬¡ãå¨auto_pträ¸ï¼å¯¹è±¡çæææä¼å½äºp2ï¼p1å°ä¼å为éæéãshared_ptråå
许å¤ä¸ªæéæååä¸ä¸ªå¯¹è±¡ï¼æ¯å¤ä¸ä¸ªæéæåï¼è®¡æ°å¨å°±ä¼+1ï¼åæ ·å¨éæ¾çæ¶åï¼å½æ°å¼å为0çæ¶åå³æåä¸ä¸ªæéè¿æçæ¶åæä¼è°ç¨deleteå½æ°ã
ä¸ãunique_ptr模æ¿
ããåæ ·ä¸ºäºé¿å
å¤ä¸ªæéæåï¼unique_pträ¸¥æ ¼äºæææçæ¦å¿µï¼å³æçå°±æçï¼ä¸å
许ä»äººæåï¼å¦ä»£ç 段äºä¸ï¼éç¨unique_ptrç¼è¾å°ä¼æ¥éï¼èå代ç ä¼ç¼è¯éè¿ä½å¯è½é æå´©æºï¼ã
åãæ»ç»
ããéè¦å¤ä¸ªæéæåä¸ä¸ªå¯¹è±¡æ¶å¯ä½¿ç¨shared_ptrï¼å¦æéæ°ç»ãä¸éè¦å¤ä¸ªæéæåä¸ä¸ªå¯¹è±¡å¯ä½¿ç¨uniq_ptrï¼uniqu_ptræ¯auto_ptræ´å å®å
¨ï¼ç¼è¯æ¥éè¿æ¯ç¨åºå´©æºå¥½å¾å¤ï¼ã
温馨提示:答案为网友推荐,仅供参考