En C++, ff J'ai une classe qui a besoin de tenir un membre qui pourrait être allouée de façon dynamique et utilisé comme un pointeur, ou non, comme ceci:dynamiques vs membres de classe non dynamique
class A {
type a;
};
ou
class A {
A();
~A();
type* a;
};
et dans le constructeur:
A::A {
a = new type();
}
et destructor:
A::~A {
delete a;
}
Y a-t-il des avantages ou des inconvénients à l'un ou à l'autre, mis à part le facteur dynamique qui nécessite plus de code? Se comportent-ils différemment (à part le pointeur devant être déréférencé) ou sont-ils plus lents les uns que les autres? Lequel dois-je utiliser?
Travaillez sur le bon code maintenable, puis, si nécessaire, travaillez sur les performances. –
Votre deuxième 'A' est dangereux; vous devez définir le constructeur de la copie et 'operator =' aussi. Ne les possédez jamais, enveloppez-les de sorte que vous n'ayez pas besoin d'écrire * des * fonctions membres spéciales. – GManNickG