“an error” is not very informative. Always send all possible information about errors you get; cut and paste all error messages etc.Also better to send the entire (hopefully small) code that reproduces the problem, than abstract snippets.
Barry On Jun 19, 2014, at 7:14 AM, Cedric Doucet <[email protected]> wrote: > Hello, > > I need to overload the assignement operator for a C++ class which has a Petsc > vector as a data member: > > class Foo > { > public: > Foo & operator=(Foo const & copy); > private: > Vec m_vec; > }; > > The algorithm for overloading the assignement operator should look like this : > > Foo & Foo::operator=(Foo const & copy) > { > if ( this != copy ) > { > // destroy this->m_vec > // allocate this->m_vec with the same size as copy.m_vec's size > // copy the content of copy.m_vec into this->m_vec > } > return *this; > } > > I thought that VecCopy(copy.m_vec,m_vec) does everything I need but I have an > error during the execution. > So I tried to call first VecDuplicate(copy.m_vec,&m_vec) and then > VecCopy(copy.m_vec,m_vec) but I still have an error. > How shoud assignement operator overloading be implemented? > Do I have to call VecDestroy before calling VecDuplicate? > Must input vectors have the same size in VecCopy? > > Thank you very much for your help! > > Best regards, > > Cédric Doucet
