1) Faire des références mutuelles entre deux classes, çai mal. Je pense même qu'en Java, par exemple, ce ne serait pas possible (je me trompe peut-être, que les experts ne m'en veuillent pas). En général, cela traduit une erreur de conception.
2) Tu ne peux bien sûr pas définir un objet de chaque type dans l'autre classe, par contre tu peux effectivement utiliser une référence ou un pointeur (ce qui est pratique pour les listes chaînées). Sauf qu'une classe étant définie après l'autre, au moment où tu définis « voiture », ton compilo ne sait pas encore que « Personne » est une classe, donc un type de données.
Solution : utiliser des prototypes.
class voiture;
class Personne;
class voiture { ...
Mais je répète : les références circulaires, en général, sapuduku.
# Relis.
Posté par Obsidian . En réponse au message fichier d'en tête fich.h. Évalué à 4.
https://linuxfr.org/forums/20/22392.html
1) Faire des références mutuelles entre deux classes, çai mal. Je pense même qu'en Java, par exemple, ce ne serait pas possible (je me trompe peut-être, que les experts ne m'en veuillent pas). En général, cela traduit une erreur de conception.
2) Tu ne peux bien sûr pas définir un objet de chaque type dans l'autre classe, par contre tu peux effectivement utiliser une référence ou un pointeur (ce qui est pratique pour les listes chaînées). Sauf qu'une classe étant définie après l'autre, au moment où tu définis « voiture », ton compilo ne sait pas encore que « Personne » est une classe, donc un type de données.
Solution : utiliser des prototypes.
class voiture;
class Personne;
class voiture { ...
Mais je répète : les références circulaires, en général, sapuduku.