ベクターへのポインターを削除しようとしていますが、(ある意味で) ポインターが含まれています
struct TestObject
{
public:
// some values
};
template <typename T> class VectorObject
{
public:
T Object;
};
vector< VectorObject<TestObject*> > *pVector =
new vector< VectorObject<TestObject*> >();
TestObject *test = new TestObject;
VectorObject<TestObject*> testObject;
testObject.Object = test;
pVector->push_back(testObject);
vector<VectorObject<TestObject*>>::iterator i;
for (i = pVector->begin(); i != pVector->end(); i++)
{
delete * (i->Object);
}
delete pVector;
これはまさにそれが機能する方法ではありませんか?または、次のように変更する必要がありますか?
vector< VectorObject < TestObject > *>?
要件
TestObject は、外部の Library メソッドから返されるため、ポインターである必要があります。