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 ?
|> > >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
Jean-Marc Bourguet <jm@bourguet.org> writes:
|> Fabien LE LEZ <gramster@gramster.com> writes:
|> > On 5 Feb 2004 00:56:52 -0800, kanze@gabi-soft.fr 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:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> > >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
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 :-)
-- ;-)
On 08 Feb 2004 15:04:51 +0100, James Kanze <kanze@gabi-soft.fr> wrote:
La norme interdit les objets de tailles nulles.
J'aime beaucoup les grandes discussions sur des trucs qui ne peuvent
pas exister :-)