將使用類實例成員上的shared_ptr當擁有的「父」超出範圍時正確清理new'ed對象?像下面的例子一樣?當擁有的對象超出作用域時,將使用類實例成員上的shared_ptr正確清理嗎?
下面的代碼示例 - 所以當家庭實例超出範圍時,它會清理/刪除地圖中鏈接到的人員對象?
如果是這樣我怎麼能確認這一點?是否有工具可以使用之前和之後,顯示 - 顯示沒有人對象之後 - 如果我把正常的指針回到我還是要看個人的對象 - 感謝
class Family
{
private:
//std::map<int ,Person*> _people;
std::map<int ,std::tr1::shared_ptr<Person>> _people;
public:
void AddPerson(int age)
{
//_people[age] = new Person(age);
_people[age] = std::tr1::shared_ptr<Person>(new Person(age));
}
};
class Person
{
private:
int _age;
public:
Person(int age)
{
_age= age;
}
int GetName(){return _age;}
};
這將是很好,如果向下票,其中的動機,讓@CodingQuant知道你爲什麼不喜歡他題。 – 2012-02-05 18:56:35