kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #24774
Re: Copy & operator=
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
Attachment:
signature.asc
Description: OpenPGP digital signature
Follow ups
References