Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/08/2006, à 07: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, à 09:52)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#2 Le 16/08/2006, à 09: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, à 09: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 wink


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#4 Le 16/08/2006, à 10: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, à 10: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, à 10: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, à 10:19)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#6 Le 16/08/2006, à 10: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, à 10: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, à 13: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, à 13:07)


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#8 Le 16/08/2006, à 13: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, à 16: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, à 17: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, à 22: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, à 22: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