I'm trying to delete my pointer to a vector but it includes pointers (in a way)
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;
Isn't this exactly the way it should work? Or do I have to change to:
vector< VectorObject < TestObject > *>?
Requirements
TestObject have to be pointer, because it's returned from an external Library method.