Posté par Yukito .
En réponse au journal C(++) ?.
Évalué à 2.
Certes, ce genre de constructions en C est possible, mais ça ne fait pas du C un langage de programmation objet pour autant. La dérivation de classes du C++ est interne au langage, alors que là, c'est de la gestion manuelle.
Le problème des constructions manuelles, c'est qu'elles ont vite leur limite. Là, l'exemple ne marche que parce que struct A est en tête de struct B. Si on veut une structure qui hérite de deux structures, et non plus d'une seule, il va falloir faire des manipulations de pointeur horribles pour que les casts soient effectués sur les bons emplacements mémoire. Ce qui mènera probablement à un code difficile à comprendre.
[^] # Re: des détails
Posté par Yukito . En réponse au journal C(++) ?. Évalué à 2.
Certes, ce genre de constructions en C est possible, mais ça ne fait pas du C un langage de programmation objet pour autant. La dérivation de classes du C++ est interne au langage, alors que là, c'est de la gestion manuelle.
Le problème des constructions manuelles, c'est qu'elles ont vite leur limite. Là, l'exemple ne marche que parce que struct A est en tête de struct B. Si on veut une structure qui hérite de deux structures, et non plus d'une seule, il va falloir faire des manipulations de pointeur horribles pour que les casts soient effectués sur les bons emplacements mémoire. Ce qui mènera probablement à un code difficile à comprendre.