Objet en variable membre : pointeur ou non ?
Bonjour,
Petite question spécifique au C++ et aux pointeurs. Je viens de m'apercevoir qu'un point n'était pas très clair dans ma tête.
Une de mes classes a en attribut plusieurs objets les initialise dans son constructeur, puis s'en sert dans d'autres méthodes.
Cette classe est la seule à se servir de ces objets en attribut, elle ne les passe jamais en paramètre à l'extérieur.
Actuellement, ces attributs était des pointeurs, mais si je ne devrais pas plutôt garder une valeur.
Du coup, est-ce que c'est mieux/moins bien de garder une valeur plutôt qu'un pointeur ? Qu'est-ce que ça change ?
Dans le destructeur, il faut que je fasse un delete sur le pointeur, mais sur une valeur, est-ce qu'il faut que je le fasse aussi ?
Merci d'avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
class CustomClass
{
public:
CustomClass();
virtual ~CustomClass();
void operation();
AnObject withoutPointer;
AnObject *withPointer;
CustomClass::CustomClass()
{
this->withoutPointer = AnObject();
this->withPointer = new AnObject();
}
void CustomClass::operation()
{
this->withoutPointer.aMethod();
this->withPointer->aMethod();
} |