Si ma classe contient un pointeur, doit-on dans l'opérateur de copie passer le pointeur via le signe = (mais du coup l'adresse sera la même), ou alors re-allouer de la mémoire avec un new et transmettre la valeur de mon pointeur par la suite?
La plupart du temps, tu voudras sûrement faire une copie.
Question bête, y a-t-il une règle ou ca dépend bêtement de ce que l'on veut faire?
Ça dépend bêtement de ce que tu veux faire.
Néanmoins, ce problème peut être aisément réglé avec des smart pointers. Des "shared pointers" par exemple. Qui peuvent être supprimés autant de fois que l'on veut, puisqu'ils ne disparaîtront qu'une fois nécessaire.
Et petite question supplémentaire, est-il indispensable de coder systématiquement cet opérateur de copie,
Oui, il est indispensable, non pas de le faire, mais de le gérer: Soit tu le désactives, soit tu le recodes.
Oubliez de le faire, c'est une grossière erreur qui mènent à un code passoir (bug, memory leak, difficultés de maintenance, ...).
de même y a-t-il une règle?
Oui. Si tu as des pointeurs en attribut de ta classe, tu dois gérer la copie. Sinon, ce n'est pas nécessaire.
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question