J'ai une erreur à la compilation d'un prg sous vc++:
"warning C4182: #include nesting level is 363 deep; possible infinite
recursion
fatal error C1076: compiler limit : internal heap limit reached; use
/Zm to specify a higher limit"
En Voici le principe, j'ai 2 classes A et B, chacune de ces 2 classes
fait référence à l'autre (association (1,1)) :
// Fichier A.h
#include "B.h"
Class A
{
B * ptr;
...
}
// Fichier B.h
#include "A.h"
Class B
{
A * ptr;
...
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rémy
"BCH" a écrit dans le message de news:
Bonjour,
J'ai une erreur à la compilation d'un prg sous vc++: "warning C4182: #include nesting level is 363 deep; possible infinite recursion fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit"
En Voici le principe, j'ai 2 classes A et B, chacune de ces 2 classes fait référence à l'autre (association (1,1)) :
// Fichier A.h #include "B.h" Class A { B * ptr; ... }
// Fichier B.h #include "A.h" Class B { A * ptr; ... }
Quelqu'un aurait-il une solution à me proposer ?
Merci d'avance
Tout d'abord, il faut protéger les fichiers .h contre les inclusions multiples:
dans X.h, on met
#ifndef __X #define __X
code de X.h ...
#endif
Par ailleurs, lorsqu'on utilise seulement un pointeur, on se contente de la déclaration de la classe:
// Fichier A.h class B; class A { B * ptr; ... }
Rémy
"BCH" <ben.christophe@wanadoo.fr> a écrit dans le message de
news:bf210555.0309230118.6b19ad90@posting.google.com...
Bonjour,
J'ai une erreur à la compilation d'un prg sous vc++:
"warning C4182: #include nesting level is 363 deep; possible infinite
recursion
fatal error C1076: compiler limit : internal heap limit reached; use
/Zm to specify a higher limit"
En Voici le principe, j'ai 2 classes A et B, chacune de ces 2 classes
fait référence à l'autre (association (1,1)) :
// Fichier A.h
#include "B.h"
Class A
{
B * ptr;
...
}
// Fichier B.h
#include "A.h"
Class B
{
A * ptr;
...
}
Quelqu'un aurait-il une solution à me proposer ?
Merci d'avance
Tout d'abord, il faut protéger les fichiers .h contre les inclusions
multiples:
dans X.h, on met
#ifndef __X
#define __X
code de X.h
...
#endif
Par ailleurs, lorsqu'on utilise seulement un pointeur, on se contente de la
déclaration de la classe:
J'ai une erreur à la compilation d'un prg sous vc++: "warning C4182: #include nesting level is 363 deep; possible infinite recursion fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit"
En Voici le principe, j'ai 2 classes A et B, chacune de ces 2 classes fait référence à l'autre (association (1,1)) :
// Fichier A.h #include "B.h" Class A { B * ptr; ... }
// Fichier B.h #include "A.h" Class B { A * ptr; ... }
Quelqu'un aurait-il une solution à me proposer ?
Merci d'avance
Tout d'abord, il faut protéger les fichiers .h contre les inclusions multiples:
dans X.h, on met
#ifndef __X #define __X
code de X.h ...
#endif
Par ailleurs, lorsqu'on utilise seulement un pointeur, on se contente de la déclaration de la classe: