OVH Cloud OVH Cloud

probleme avec des hearders

12 réponses
Avatar
Xavier Seneque
Bonjour,

j'ai 3 classes : A, B et C

dans la définition de la classe A, il y a un objet B.
dans la definition de la classe B, il y a un objet C.
dans la definition de la classe C, il y a un objet B.

voila en gros :
A.h
#include "B.h"
class A
{
public:
B b;
};

B.h
#include "C.h"
class B
{
public:
C c;
};

C.h
#include "B.h"
class C
{
public:
B b;
};

j'ai tout encadré avec des #ifndef et #define pour pas que ce soit
recursif...

mais bon, comment faire pour que lorsque l'on arrive à l'analyse du
fichier C.h ( en passant par A.h puis B.h ), la classe B soit définie ?

Merci d'avance !

2 réponses

1 2
Avatar
James Kanze
Jean-Marc Bourguet writes:

|> Fabien LE LEZ writes:

|> > On 5 Feb 2004 00:56:52 -0800, wrote:

|> > >Seulement si la taille des objets est finie. Si la taille de B et
|> > >de C est infinie, pas de problème.

|> > Tiens oui, je n'y avais pas pensé. On devrait utiliser plus
|> > souvent des objets de taille infinie, ça simplifie bien des
|> > problèmes...

|> Si les objets sont de tailles nulles, il n'y a pas non plus de
|> problemes.

La norme interdit les objets de tailles nulles.

En fait, je crois aussi qu'il interdit les objets de tailles infinies,
au moins indirectement. Une expression sizeof rend un type entier, et
pour tout type entier T, l'expression numeric_limits< T >::max() est
définie.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
Fabien LE LEZ
On 08 Feb 2004 15:04:51 +0100, James Kanze wrote:

La norme interdit les objets de tailles nulles.


J'aime beaucoup les grandes discussions sur des trucs qui ne peuvent
pas exister :-)

--
;-)

1 2