Cours 2

icon

18

pages

icon

Français

icon

Documents

Écrit par

Publié par

Lire un extrait
Lire un extrait

Obtenez un accès à la bibliothèque pour le consulter en ligne En savoir plus

Découvre YouScribe en t'inscrivant gratuitement

Je m'inscris

Découvre YouScribe en t'inscrivant gratuitement

Je m'inscris
icon

18

pages

icon

Français

icon

Documents

Lire un extrait
Lire un extrait

Obtenez un accès à la bibliothèque pour le consulter en ligne En savoir plus

Programmation Orienté Objet en C++  Ricard julienjricard@liris.cnrs.fr04.72.44.83.95http://liris.cnrs.fr/julien.ricard/OrganisationCours :RappelsSurchage de fonctionsSurcharge des opérateursFonctions amiesFonction TemplateFonction inlineTP : nombres rationnels Programmation Orienté Objet en C++ 2RappelIfIf ( condition ) { bloc si oui } else { bloc si non } ((condition)? Instruction_oui : instruction_non);While While ( condition ) { bloc executer tant que...  }For For ( initialisation ; condition ; incrementation ) { bloc }Do whileDo { bloc } while ( condition ) ;Programmation Orienté Objet en C++ 3Conditions booléenneEt : & ou &&Ou : |  ou || Égalité : ==, <=, <, >=, >, !=Penser aux () et aux commentaires…(((a=0))||((a>b)&&(a<100000)))& True False || True FalseTrue True False True True TrueFalse False False False True FalseProgrammation Orienté Objet en C++ 4Classeclass Date { Date::Date(){  _jour=0; public :    _mois_0;   int var1;   _annee=0;  Date();  }   ~Date(); Date::~Date(){}  void initialiser(int j,int m,int a);  void afficher(); void Data::afficher(){  int getJour();   cout << "la date : " << _jour ;  int getMois();   cout << "/" << _mois ;  int getAnnee();   cout << "/" << _annee <<  endl;   setJour( int j); }  setMois(int m);    setAnnee(int a); int Data::getJour() {return _jours;}int Data::getMois() {return _mois;};protected: int Data::getAnnee(){return _annee;}  int _jour;  int _mois; ...
Voir icon arrow

Publié par

Nombre de lectures

245

Langue

Français

Programmation Orienté Objet  en C++   Ricard  julien jricard@liris.cnrs.fr 04.72.44.83.95 http://liris.cnrs.fr/julien.ricard/ Organisation Cours : Rappels Surchage de fonctions Surcharge des opérateurs Fonctions amies Fonction Template Fonction inline TP : nombres rationnels  Programmation Orienté Objet en C++ 2 Rappe l If If ( condition ) { bloc si oui } else { bloc si non }  ((condition)? Instruction_oui : instruction_non); While  While ( condition ) { bloc executer tant que...  } For  For ( initialisation ; condition ; incrementation ) { bloc } Do while Do { bloc } while ( condition ) ; Programmation Orienté Objet en C++ 3 Conditions  booléenne Et : & ou && Ou : |  ou ||  Égalité : ==, <=, <, >=, >, != Penser aux () et aux commentaires… (((a=0))||((a>b)&&(a<100000))) & True False || True False True True False True True True False False False False True False Programmation Orienté Objet en C++ 4 Classe class Date { Date::Date(){   _jour=0;  public :    _mois_0;    int var1;   _annee=0;   Date();  }    ~Date(); Date::~Date(){}   void initialiser(int j,int m,int a);   void afficher(); void Data::afficher(){   int getJour();   cout << "la date : " << _jour ;   int getMois();   cout << "/" << _mois ;   int getAnnee();   cout << "/" << _annee <<  endl;    setJour( int j); }   setMois(int m);     setAnnee(int a); int Data::getJour() {return _jours;} int Data::getMois() {return _mois;}; protected: int Data::getAnnee(){return _annee;}   int _jour;   int _mois; Data::setJour(int j) {_jour =j;}   int _ann ée; Data::setMois(int m) {_mois =m;}   void _test(); Data::setAnnee(int a){_annee=a;} private: }; Programmation Orienté Objet en C++ 5 Réutilisabilité des  fonctions Un bon module doit pouvoir : Manipuler plusieurs types différentes S’adapter au différentes structures de données  Offrir des opérations sans connaître l’implémentation   factoriser  les  opérations  communes  à  un  groupe  de  module Deux concepts La surcharge La généricité Définition de nouvelles techniques:  Surchage des fonctions et  des op érateurs  Fonction Template Programmation Orienté Objet en C++ 6 Surcharge  Attribuer le m ême noms  à plusieurs op èrateurs ou  à plusieurs fonctions L’ambiguité est  levé par le contexte : Nombre de parametres Type des parametres  int max(int a,int b,int c); int max(int a,int b); float max(float a, float b, float c);  float max(float a, float b); char max(char a, char b, char c); char max(char a, char b); Programmation Orienté Objet en C++ 7 Exemple de surcharge de  fonctions int max(int a,int b){    return ((a>b)? a : b); } float max(float a, float b){     int max(int a, int b, int c){}    if ((a>b)&&(a>c))char max(char a, char b){       return a;   return ((a>b)? a : b);    if ((b>a)&&(b>c)) }       return b;    if((c>a)&&(c>b))       return c; } float max(float a, float b, float c){Class Point{    return max(max(a,b),c);Public: }   Point();    Point(int x,int y);  Private:    int _x;    int _y; } Programmation Orienté Objet en C++ 8 Surcharge des  opérateurs On peut surcharger les op érateurs : +,­, *, /, ++, =, ==, >, <, %, +=, ­ = … Cela permet : SI A et B deux objets  Point A,B,C;A+B; C=A+B;  C=A­B;A­B; B=­A; ­A; C=­(A*B); If( B==A)… if(A
Voir icon more