正文
1.不要手動(dòng)釋放從函數(shù)返回的堆資源
假設(shè)你正在處理一個(gè)模擬Investment的程序庫(kù),不同的Investmetn類型從Investment基類繼承而來(lái),
1 class Investment { ... }; // root class of hierarchy of2 3 // investment types
進(jìn)一步假設(shè)這個(gè)程序庫(kù)通過(guò)一個(gè)工廠函數(shù)(Item 7)來(lái)給我們提供特定Investment對(duì)象:
1 Investment* createInvestment(); // return ptr to dynamically allocated2 3 // object in the Investment hierarchy;4 5 // the caller must delete it6 7 // (parameters omitted for simplicity)
正如注釋所表述的,當(dāng)createInvesment返回的對(duì)象不再被使用時(shí),調(diào)用者有責(zé)任將此對(duì)象釋放掉。我們用函數(shù)f來(lái)履行這個(gè)職責(zé):
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式