我們如何處理一個向量,其元素是指向對象的向量?我的具體問題是下面提供的代碼末尾的註釋。謝謝。指向對象的指針向量 - 如何避免內存泄漏?
class A
{
public:
virtual int play() = 0 ;
};
class B : public A
{
public:
int play() {cout << "play in B " << endl;};
};
class C : public A
{
public:
int play() {cout << "play in C " << endl;};
};
int main()
{
vector<A *> l;
l.push_back(new B());
l.push_back(new C());
for(int i = 0 ; i < l.size();i++)
{
l[i]->play();
}
//Do i have to do this to avoid memory leak? It is akward. Any better way to do this?
for(int i = 0 ; i < l.size();i++)
{
delete l[i];
}
}
+1對於C++ 0x unique_ptr – rubenvb 2010-08-10 10:42:23
對於boost指針容器+1。 – 2010-08-10 11:52:54
大家好,我使用的VS2010可能有shared_ptr。有一個我可以看看的例子嗎? --thx – q0987 2011-05-19 23:46:22