Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
8 janv. 2008 à 19:51
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
9 janv. 2008 à 10:40
Bonjour, j'ai une idée qui m'a illuminé cette nuit mais je ne sais pas comment la réaliser, ni même si elle est possible.
J'ai une classe Vehicule avec des fonctions définies en virtual (tourner, avancer ...) et une fonction acheter(int nombrederoues);
Je crée aussi 2 autres classes : Moto ou Voiture où je définie mes fonctions (tourner avancer ...) spécifiquement sachant qu'elles utilisent des variable private de leur propre classe (volant dans Voiture ou guidon dans Moto par exemple).
Ce que j'aimerais faire, c'est acheter un vehicule en précisant juste le nombre de roues, et pouvoir le conduire sans me soucier de son type.
En code mon objectif est :
Vehicule transport;
transport.acheter(2); //acheter une moto
transport.avancer();
transport.tourner(); //tourner le guidon
Donc je voudrais que mon transport puisse se dériver lui-même dans la fonction acheter() vers la classe Moto ou Voiture.
Je ne sais malheureusement pas comment m'y prendre, car je ne pense pas qu'un cast ou reinterpret cast puisse fonctionner depuis l'objet lui même.
Si ceci peut se faire ou si quelqu'un à une piste ...
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 8 janv. 2008 à 23:30
Pas bien compris...
Tu veux simplement créer un véhicule avec un certain nombre de roues et ensuite le manipuler de façon transparente? Tu peux faire ça par exemple :
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 8 janv. 2008 à 23:33
Oui ce que je veux dire c'est par rapport à ta syntaxe :
Vehicule transport;
transport.acheter(2); //acheter une moto
tu peux pas transformer le vehicule en moto, c'est pour ca que j'ai mis une methode static qui te renvoie un nouvel objet (ca revient à peu près au même, non?)
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 9 janv. 2008 à 10:40
ça ressemble bien à ce que je veux faire. Mais j'attachais quand même une importance particulière à mon :
Vehicule transport;
transport.acheter(2); //acheter une moto
Car en fait mon application est plus complexe que l'exemple que j'ai posté. Pour rester dans les vehicules, mon application retourne une liste de tous les vehicules disponibles lors de l'appel du constructeur de Vehicule. Et seulement après je voulais acheter mon véhicule, donc je voulais bien transformer, après sa création, un véhicule en moto.
Je comprends que ce n'est pas possible, mais ta solution conviendra à mon problème, je vais juste séparer la récupération de la liste de véhicules et l'achat de celui-ci.