Bonjour,
J'aimerais savoir si ces bouts de code sont sûrs :
sachant que :
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
25
26
27
28
29
30 // Partie non accessible uneClasse obj; (...) // Partie accessible obj.~uneClasse(); new(&obj) uneSousClasse(); (...) reinterpret_cast<uneSousClasse *>( &obj )->~uneSousClasse(); new(&obj) uneClasse(); //==================================// // Partie non accessible uneClasse *obj = new uneClasse(); (...) // Partie accessible obj->~uneClasse() new(obj) uneSousClasse(); (...) reinterpret_cast<uneSousClasse *>( obj )->~uneSousClasse(); new(obj) uneClasse(); (...) // Partie non accessible delete obj;
- uneSousClasse et une sous-classe de uneClasse ;
- uneSousClasse ne définit aucun attribut membre ni aucun membre statique (attribut ou fonction) ;
- le destructeur de la classe uneClasse n'est pas (forcément) virtuel ;
- je n'ai pas accès à la classe uneClasse ;
- je n'ai pas forcément accès à la classe uneSousClasse ;
- je n'ai pas accès à la création de l'objet (ni à sa destruction).
Je sais que ce n'est pas propre, mais je n'ai pas vraiment le choix...
Merci d'avance.
Edit : J'ai ajouté la gestion de la destruction des objets.
Partager