On 05/26/2016 04:53 PM, Maciej Sumiński wrote: > On 05/26/2016 09:46 AM, jp charras wrote: >> Le 26/05/2016 à 08:59, Maciej Sumiński a écrit : >>> Thank you Cirilo. I am trying to be really careful here, that is why I >>> am asking for more details. I would like to make the code simpler, so >>> there are no more doubts about whether to use operator = or Copy() (for >>> some classes it is exactly the same code). >>> >>> For the scenario you described, there is EDA_ITEM::Clone() method. >>> Copy() is defined only for a few classes, and others are copied using >>> operator=, so it is a bit confusing to me. >>> >>> Regards, >>> Orson >> >> Usually, Copy() is used when you do not want to copy all members. >> Typically when you do not want to change Pback, Pnext, m_Parent, time stamp >> and a few other pointers >> and flags. >> >> If these members are reinitialized (or have the right value) after copy, >> using Copy() or = (for >> classes which do not define Copy() and can be copied by = ) can give the >> same result. > > One more question, for DRAWSEGMENT Copy() is implemented by calling > operator=, so it does not transfer the mentioned fields. Should it be > the case for every class? How to recognize when a parent, timestamp & > list-related fields should be copied as well? They are transferred by > automatically generated operator=. > > Regards, > Orson
Sorry for multiple messages in a row, but I am having more doubts. Some of the BOARD_ITEM derived classes have defined copy constructors, and others not with a comment that the default copy constructor is fine. Classes with copy constructor defined do not copy parents, timestamp or list-related fields, so I assume that should be the case for every other class. We should pick one option: either we copy everything in copy constructors and defined them only for certain classes or every class should have a copy constructor that explicitly skips the mentioned fields. Any ideas? Regards, Orson
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

