Dire que j'ai le code comme ceci:Comment nous une classe de base dans un paramètre de sortie
class B {}
class D : class B {}
void MakeD(int params, D** out, int* status_out);
Aujourd'hui, je l'appelle comme ceci:
B* b;
if (use_d) {
D* d;
MakeD(params, &d, &status)
b = d;
} else...
Y at-il un moyen plus propre d'écrire ce qui évite un objet 'd' distinct, mais sans perdre le type de sécurité existant (ie pas de reinterpret_cast)?
Au lieu d'utiliser un argument « out », pourquoi ne pas retourner simplement le pointeur? –
Je ne vois aucune instanciation d'objet 'D' ici. Vous travaillez avec des pointeurs non définis. Que se passe-t-il dans MakeD? –
Modifier vos tags. C n'a pas de classes. C'est C++ – evanmcdonnal