Heritage et appel de fonction [Debutant] - C++ - Programmation
Marsh Posté le 15-03-2006 à 18:58:47
chat->GetType()
ce n'est pas une bonne idée le friend la, il peut facilement etre évité, en plus tu fournies les méthodes d'accés aux membres
fais attention à ne pas oublier les destructeurs virtuels si tu comptes rendres tes classes polymorphiques
Marsh Posté le 15-03-2006 à 19:57:28
Code :
|
Marsh Posté le 15-03-2006 à 21:47:40
Ok merci a toi pour ce code. J'avais trouvé aussi en faisant une simple fonction affiche.
Merci
Marsh Posté le 15-03-2006 à 22:10:40
mais t'as pas du le faire bien (sans virtual, sans surcharge propre, sans const, etc)
Marsh Posté le 15-03-2006 à 22:17:30
exact Rien de tout ca. Faudrait que je rajoute le virtual et le const dans mon cas de chat::affiche()
Faut que je vois encore comment fonctionne virtual. Haaa que c'est dur le passage java/c# à c++.
Merci quand meme de m'ouvrir les yeux sur mes oublis. C'est simpa
Marsh Posté le 16-03-2006 à 00:18:09
groskachou a écrit : |
ok donc ta solution n'en ai pas une ...
et puis arrête tes bêtises avec classe::machin(). tu fais this->machin() et t'arrêtes de faire n'importe quoi. t'as rien bité au polymorphisme. fais
Mammifère *m = new Chat();
cout << *m;
cout << m->GetType();
et pleure
Marsh Posté le 16-03-2006 à 01:29:38
Classe::machin comme tu dis c'était l'un de mes nombreux test pour voir si ca marchait mais non...
J'aime pas trop le ton arrogant Taz... Je pense que certains connaissent mieux certains langages que d'autres et une simple explication aurait suffit pour que je comprenne.
Pour le moment j'ai vu ce qu'était la base canonique en c++ et je commence a passé à l'héritage. Le polymorphisme, c'est la prochaine étape.
Mais, en tout cas, un grand merci pour toutes vos précisions et vos conseils.
Marsh Posté le 18-08-2006 à 23:07:32
dis moi drayell ... visiblement tu fais un tour dans les archives ? T'as l'air d'upper des topics de plus en plus vieux... celui la a + de 5 mois !
Marsh Posté le 15-03-2006 à 16:25:14
Bonjour,
J'essaye de bien comprendre l'héritage sous c++ alors je me suis fait un petit programme de base. J'ai donc une classe mammifere et une classe chat. La classe chat dérive donc de la classe mammifere. J'essaye de créer mon chat qui est donc un mammifere et d'afficher que c'est un type mammifere mais le compilateur me sors une erreur que je ne comprend pas :
cannot call member function `std::string Mammifere::GetType()' without object
Voici le code des 2 classes :
Classe Mammifere :
Classe Chat :
La ligne qui pose problème est indiqué ds le code par "<<< ERREUR ICI !!!!" juste au dessus. Merci de votre aide. Je pense que c'est pas grand chose mais je vois pas d'ou ca peut provenir.
Un grand merci a vous.
Groskachou
Message édité par groskachou le 15-03-2006 à 18:24:31