I need to clone a vector of classes I have it so that it successfully clones but there is two errors: 1) upon exit it causes a crash which i take it is from an object already being deleted & 2) if I add a new object to the newely cloned vector it overwrites the first and last position of the vector.
This is what I have in my program.
I have 2 classes :
1- cnamevaluepair (which holds two string values)
2- cnamevaluepairlist( which has a vector of cnamevaluepair)
the vector def is showed in this typedef
I need to have the class clone itself from the main program with a call such as this:Code:typedef vector<CNameValuePair*> NVPLIST; typedef vector<CNameValuePair*>::iterator NVPLISTITER;
new_list=old_list.clone();
So inside my cnamevaluepairlist.clone() I have this:
the list variable is of NVPLIST type. Inside my add(strName,strValue) function i have the following:Code:CNameValuePairList CNameValuePairList::clone() { CNameValuePairList* temp2=new CNameValuePairList; string strValue; string strName; for (NVPLISTITER the_iterator=list.begin(); the_iterator != list.end(); the_iterator++) { strValue=(*the_iterator)->getValue(); strName=(*the_iterator)->getName(); temp2->add(strName,strValue); } return *temp2; }
Do you know what I am doing wrong to cause the 2 errors stated earlier?Code:CNameValuePair* temp2=new CNameValue(strName,strValue); list.push_back(temp2);




Reply With Quote