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 : Sélectionner tout - Visualiser dans une fenêtre à part
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();
    }