#1 Le 16/08/2006, à 06:46
- Noé
Erreur de compilation C++ membre pointeur sur instance de classe
Bon bah je code du C++. Déjà. Je disais donc, je code :
class BlaBla {
};
class Bla {
BlaBla * monBlaBla;
};
int main() {
return 0;
}
Oui, là j'ai un peu simplifié. Enfin bref, je veux très innoçamment mettre un membre dans une classe qui est un pointeur vars une instance d'une autre classe. Et là, c'est le drame :
[08/16@07:41]~/prog/test$ g++ blablabla.cpp
dbc.cpp:5: erreur: ISO C++ forbids declaration of «BlaBla» with no type
dbc.cpp:5: erreur: expected «;» before «*» token
Une erreur de compil venue de nulle part, et qui m'énerve pas mal.
Quelqu'un saurait ou est-ce que je me plante ?
Dernière modification par Noé (Le 16/08/2006, à 08:52)
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#2 Le 16/08/2006, à 08:15
- trucutu
Re : Erreur de compilation C++ membre pointeur sur instance de classe
1- euh... tu as déclaré la classe Bli ?
2- Tu l'as déclarée avant Bla ?
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#3 Le 16/08/2006, à 08:53
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Je me suis emmêlé les pinceaux en écrivant l'example. Comme ça c'est plus clair
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#4 Le 16/08/2006, à 09:07
- trucutu
Re : Erreur de compilation C++ membre pointeur sur instance de classe
3- Bon, bah, avis perso .... : je ne pense pas que tu puisses faire les choses aussi "innoçamment". Ca manque un peu de constructeur/destructeur, par exemple (je ne sais pas trop si c'est absolument nécessaire, mais je ne tenterais pas le diable à écrire un programmme trop simpliste, comme tu le fais au dessus)
Dernière modification par trucutu (Le 16/08/2006, à 09:09)
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#5 Le 16/08/2006, à 09:19
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Évidemment, dans mon programme, BlaBla a un constructeur. Mais ça ne change rien : C'est la même erreur.
D'après moi d'ailleurs cette erreur veut dire que G++ prend «BlaBla * monBlaBla» comme un appel au constructeur BlaBla. Du coup je ne sais pas comment faire.
Dernière modification par Noé (Le 16/08/2006, à 09:19)
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#6 Le 16/08/2006, à 09:47
- trucutu
Re : Erreur de compilation C++ membre pointeur sur instance de classe
4- Oui, bon, si ton programme en contient plus, cela va être difficile de deviner ce qui pourrait manquer (ou pas...). Si tu es vraiment sûr de la syntaxe, je te conseillerais, en parallèle, de partir d'un exemple récupéré sur le net qui "marche d'entrée", et de l'adapter progressivement à tes besoins (sans introduire de bugs), et de voir au final les différences...
Dernière modification par trucutu (Le 16/08/2006, à 09:48)
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#7 Le 16/08/2006, à 12:05
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Une solution :
class BlaBla {
};
class Bla {
BlaBla & monBlaBla;
};
int main() {
return 0;
}
Cependant c'est un contournement, je n'estime pas mon problème comme résolu. Quelqu'un a une autre idée ?
Dernière modification par Noé (Le 16/08/2006, à 12:07)
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#8 Le 16/08/2006, à 12:29
- trucutu
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Juste une petite question :
tes constructeurs, tu les as mis en "public" ?
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#9 Le 16/08/2006, à 15:44
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Oui. Et ils doivent l'être dans le cas de mon application.
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#10 Le 16/08/2006, à 16:14
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Après vérification, ma solution de détournement ne semble détourner rien du tout dans mon vrai code source.
test/../sceneobject.h:14: erreur: ISO C++ forbids declaration of «Engine» with no type
test/../sceneobject.h:14: erreur: expected «;» before «&» token
Mais alors ?
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#11 Le 28/08/2006, à 21:10
- zyb
Re : Erreur de compilation C++ membre pointeur sur instance de classe
Petit Up!
J'ai la même erreur que toi et je suis preneur pour une réponse !
#12 Le 28/08/2006, à 21:19
- Noé
Re : Erreur de compilation C++ membre pointeur sur instance de classe
En fait ça veut dire que la classe spécifiée n'existe pas encore. Il suffit de mettre avant la définition de tes classes :
class LeNomDeTaClasse;
class LeNomDeTonAutreClasse;
class EtCaetera;
Pour éviter tout problème de ce genre.
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne