Bonjour,
Je vois dans les exemples de la libraire boost.ggl des trucs comme :
Code :
struct my_ring : std::deque<my_point> {};
Je pensais qu'il y avait des risques ? par exemple si on a dans le code un :
Code :
std::deque<my_point> * truc;
//...
truc = new my_ring();
//...
delete truc;
truc = nullptr;
Alors il y a bien une fuite mémoire, non?
Bref, tout ceci signifie-t-il que "tant qu'on essaie pas de faire du polymorphisme, on ne risque rien à faire des destructeur non virtuels" ?
Hello,
Le destructeur de my_ring ne devrait effectivement pas être appelé dans ce cas (le destructeur de deque (ou de ses classes mères) n'est pas virtuel). Mais si l'on se contente d'ajouter des fonctionnalités dans my_ring et pas de nouveaux membres, cela n'a pas d'importance (je crois).
struct my_ring : std::deque<my_point> {};
C'est vraiment ca que tu as vu? Dans ce cas, un simple typedef me semble équivalent.
Partager