Est-il possible d’hériter d’une structure avec une autre en C ou C ++ standard?
C ne supporte pas l’inheritance.
C ++ prend en charge l’inheritance.
Vous pouvez incorporer une structure dans une autre pour simuler l’inheritance en C:
typedef struct { int i; } base; void basefunc(base *b); typedef struct { base b; char c; } extended; extended e; /* Initialise extended here */ basefunc(&e.b); /* Use the type checker */ basefunc((base*)&e); /* Just make sure you know what you're doing */
La seule différence entre struct
et class
est la visibilité par défaut des membres et le mode d’inheritance par défaut. struct D : B { ...
est équivalent à la class D : public B { public: ...