Appel d'une fonction

Résolu
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010 - 23 juin 2008 à 15:35
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010 - 23 juin 2008 à 16:48
Bonjour,


 je n'arrive pas à appeler une fonction, c'est la fonction print.
C'est une fonction qui doit faire appel à l'accesseur pour afficher la variable
m_MyStringSchool.


 



Voici la déclaration de ma classe dans un fichier.h:


 








class
Youth


{




public
:


std:string
getMyStringSchool();//
accesseur




void
print();//fonction d'affichage




[...]





private
:


[...]


std:string m_MyStringSchool;


};




#endif





 







et voici là où je tente de l'appeler dans
un fichier.cpp:







 















void

print()

//fonction d'affichage








{







string chaine;







chaine = Youth::getMyStringSchool();








cout << chaine <<

endl;







}






 







le compilateur me dit:
Youth::getMyStringSchool': appel non conforme d'une fonction membre non
static







et je ne comprend pas comment je pourrai m'en
sortir et pourquoi le compilateur me dit ça.









Merci pour toutes
remarques ou simples suggestions.

9 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2008 à 16:42
Je viens de remarquer que ta fonction print n'est pas declare comme il faut:

void Youth::Print()
{...}

Et la quand tu veux utiliser une variable membre tu n'as pas besoin de mettre Youth:: devant la variable.

A+
Mon site internet : http://pistol.petesampras.free.fr
3
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2008 à 15:52
Salut

De ta fonction print tu as acces a toutes les variables membres de ta class:
un simple cout <<m_MyStringSchool; devrait suffir.

A+
Mon site internet : http://pistol.petesampras.free.fr
0
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010
23 juin 2008 à 16:03
J'ai essayé ton idée en faisant:

void print()//fonction d'affichage
{
    cout << Youth::m_MyStringSchool << endl;  //
}

car effectivement on sensé avoir accès aux données, mais le compilateur dit:

référence non conforme à un membre non static 'Youth::m_MyStringSchool'
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2008 à 16:09
Ben si ton compilo veux que cette variable soit static, declares la en static:
static string m_MyStringSchool

A+
Mon site internet : http://pistol.petesampras.free.fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010
23 juin 2008 à 16:14
Ben c'est une soluce.

Mais comment modifier une static après l'avoir déclarée?

J'aimerai avoir la possibilité de créer mon objet et de pouvoir modifier le contenu de m_MyStringSchool après la création.

Si tu as une idée sur la méthode.... n'hésite pas, je suis preneur.
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2008 à 16:20
Une variable static n'est pas une variable const.
Son contenu peut etre change sans probleme.

A+
Mon site internet : http://pistol.petesampras.free.fr
0
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010
23 juin 2008 à 16:22
Ok, je vais tenter ta soluce.

Merci pour ton aide! Bon courrage pour tes études!
0
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010
23 juin 2008 à 16:25
Bon, ben en fait c'est pas gagné

car maintenant mon compilo me sort que j'ai pas le droit d'accéder à des variables privées!

"impossible d'accéder à private membre déclaré(e) dans la classe 'Youth"
0
eldran64 Messages postés 12 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 15 juin 2010
23 juin 2008 à 16:48
C'est géniale! T'es un boss! ça fonctionne! Bravo avec un grand "b" et merci avec un grand "m"!
Tu n'as pas dit à quel tu me dépannes!

Merci!
0
Rejoignez-nous