Suppose I have a class similar to the following:
#include <vector>
class element
{
public:
   element();
   ~element();
   virtual void my_func();
private:
   std::vector<element*> _elements;
};
How would I go about implementing the destructor?
I was thinking something like this, but I'm not sure. I am worried about memory leaks since I'm relatively new to C++.
void element::destroy()
{
   for(int i = 0; i < _elements.size(); ++i)
      _elements.at(i)->destroy();
   if(this != NULL) 
      delete this;
}
element::~element()
{
    destroy();
}
Thank you.
PS: Here is a sample main:
int main()
{
   element* el_1 = new element();
   element* el_2 = new element();
   element* el_3 = new element();
   el_1.add_element(el_2);
   el_2.add_element(el_3);
   return 0;
}
Also, what if I do this (aka don't use new):
int main()
{
   element el_1;
   element el_2;
   element el_3;
   el_1.add_element(&el_2);
   el_2.add_element(&el_3);
   return 0;
}
 
     
     
     
     
    