Creation de classe [code en c++] [g++]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 298 fois - Téléchargée 40 fois

Contenu du snippet

Salut,
bon et bien dans cet exemple je vais vous montrer comment ecrire une classe en C++.

Source / Exemple :


#include <iostream.h>

class Voiture      //creation de la classe Voiture
{
 public:            //on declare que tous les membres qui suivent sont public
  
  //declaration des variables qui seront "global" pour la class
  //ce que je veut dire c'est que ces variables la seront accessible
  //pour toutes les fonctions de la classe Voiture
  int nb_place;
  char *couleur;
  char *constructeur;
  char *modele;
 
  //Fonction setConstructeur on est pas obliger de metre
  //ca comme je l'est mis ci-dessosu on peut aussi lecrire:
  //void setConstructeur(char *construct) ect...
  //donc la pour chacques fonction c'est commes pour des fonctions
  //classique que vous utiliser d'habitude
  void Voiture::setConstructeur(char *construct)
  {
    //la je range la valeur de cosntruct dans constructeur pour pouvoir 
    //utiliser cette valuer dans d'autres fonctions de ma classe
    constructeur = construct; 
  }

  //Bon apres c'est partout pareil
  
  void Voiture::setModel(char *model)
  {
    modele = model;
  }

  void Voiture::setNbPlace(int place)
  {
    nb_place = place;
  }

  void Voiture::setCouleur(char *coul)
  {
    couleur = coul;
  }

  char *Voiture::getConstructeur(void)
  {
    //la je retourne ce qui est contenu dans constructeur, donc vaut mieux
    //d'abbord avoir utiliser la fonction Voiture::setConstructeur(char *) avant 
    //d'utiliser cette fonction pour eviter tout probleme :-)
    return constructeur;  
  }

  //Pareil pour les fonctiosn qui suivent

  char *Voiture::getModele(void)
  {
    return modele;
  }

  char *Voiture::getCouleur(void)
  {
    return couleur;
  }

  int Voiture::getNbPlace(void)
  {
    return nb_place;
  }

};

int main(void)
{
  //Ces variables servironts pour la sutie (plusbas dans le soruce :-)
  char *constructeur;
  int nb_place;
  char *couleur;
  char *model;

  //Alors ici on declare que one herite de la classe Voiture ce qui signifie que one
  //possede totues les fonctions ecrite dans la classe Voiture comme par exemple
  //Voiture::setConstructeur(char *) :-)
  Voiture one; 
  //donc comme one a heriter des fonctions de la classe de Voiture on peu utiliser
  //setConstructeur("PEUGEOT"); comme je disait jsute ua dessus hehe :-)
  //en fait c'est un peu le meme principe que les structure (note: voir mon source sur les structure :-)
  one.setConstructeur("PEUGEOT");  
  one.setModel("406"); //ici on definie le modele
  one.setCouleur("bleu"); //ici la couleur de la voiture
  one.setNbPlace(4); //et ici le nombre de place

  //on aurait aussi tres bien pu ecrire es meme fonctions de la maniere suivante:

  Voiture two;
  two.Voiture::setConstructeur("Citroen");
  two.Voiture::setModel("Picasso");
  two.Voiture::setCouleur("vert");
  two.Voiture::setNbPlace(4);

  //le fait d'ecrire ces premiere fonctiosn de cette manieres n'empeche pas d'utiliser
  //les autres fonctions de la meniere precedente, Exemple:

  constructeur = two.getConstructeur();
  model = two.getModele();
  couleur = two.getCouleur();
  nb_place = two.getNbPlace();

 
  //bon apres avoir ranger ces valeur dans un tableux et bien on vas les afficher
  //biensur que je sais que vosu savait faire ca ;-) mais c'est jsute pour bien
  //terminer ce petit exemple ;o)

  cout << "********************************\n";
  cout << "**       Votre commande       **\n";
  cout << "********************************\n";
  cout << "Constructeur:"<<constructeur<<"\n";
  cout << "Modele:      "<<model<<"\n";
  cout << "Nb de place: "<<nb_place<<"\n";
  cout << "Couleur:     "<<couleur<<"\n";
  cout << "********************************\n";

}

A voir également

Ajouter un commentaire

Commentaires

Salut,
je suis daccord avec toi, c'est vrai que normalement je n'aurait pas du faire cela comme je l'est fait :-)
mais je voulait montrait de maniere simple le "principe" d'une classe, enfin je pense que tu a compris ce que je voulais dire ;-)
Premièrement, je trouve que c'est un peu le bordel
dans ta classe. On déclare normallement l'interface
dans un .h et on définit les fonctions dans un .cpp.
Ensuite, on évite de mettre des attributs en publics :
c'est une classe, pas une structure !
Pour finir, utiliser le '=' avec des chaines de
caractères (char *) n'est pas vraiment recommandé
non plus.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.