c++ - Getting error "Debug Assertion Failed" -


i have vector of pointers class created called polygon, has derived classes different shapes. relevant code looks this:

int main() { vector<polygon*> polygonvec;  polygonvec.push_back(new triangle(2,3,1,2,-1,-4, "triangle 1")); polygon *temppolygon; temppolygon = new rectangle(1,2,3,4,5,6,7,8, "rectangle 1"); polygonvec.push_back(temppolygon);   for(vector<polygon*>::iterator itr = polygonvec.begin();     itr != polygonvec.end();     itr++) {     cout<<*itr<<endl; }  for(vector<polygon*>::iterator itr = polygonvec.begin();     itr != polygonvec.end();     itr++) {     delete *itr; }  polygonvec.clear(); 

when compile , run in visual studio 2012, runs expected , gives required output, throws below error @ end

"debug assertion failed … _block_type_is_valid(phead->nblockuse)".

can tell me why happening?

make sure declare polygon destructor virtual, otherwise have undefined behaviour when try invoking delete on polymorphic object via pointer base.


Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -