ikariya@via.ecp.fr. erratum c surcharge for(int x=0; … 2

Download Ikariya@via.ecp.fr. Erratum C Surcharge For(int x=0; … 2

Post on 03-Apr-2015

105 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • ikariya@via.ecp.fr
  • Page 2
  • Erratum C Surcharge For(int x=0; 2
  • Page 3
  • Au menu Introduction Prrequis Documentation Problmatiques Nouveauts syntaxiques du C++ Avoir la classe Plus de classe (encore) Intro la STL 3
  • Page 4
  • Introduction Langage TRES rpandu Performances Portabilit Rigueur Extension du C Ceci nest quun rapide tour dhorizon Ca sapprend par la pratique ! 4
  • Page 5
  • Prrequis Introduction au C Problmatiques du C Un peu de pratique (GCC, VC ou autre) 5
  • Page 6
  • Sources de documentation - Bis Internet http://www.developpez.com/ Google Bouquins divers et varis (mais ca cote cher et utilit variable) Cdric stilgar sur IRC 6
  • Page 7
  • Problmatiques Besoin de performances Language de haut niveau Programmation oriente objet Nouvelle philosophie de programmation Encapsulation des donnes Masquage de limplmentation Rutilisation (Capitalisation) 7
  • Page 8
  • Whats new ? 8
  • Page 9
  • Hello World des temps modernes #include /* Commentaires Multi-lignes */ int main() { // Toujours le mme prgm pour commencer std::cout
  • La pratique Wizard ika; ika.etat = true; ika.vie = 20; ika.mana = 0; ika.Engage(10); Wizard *p_ika = &ika; p_ika ->vie--; ika->Engage(1); 23
  • Page 24
  • Constructeur / Destructeur Initialisation pralable des donnes avant toute utilisation de lobjet mettre les PV 20 avoir un magicien vivant Constructeur : appel la cration de lobjet Destructeur : appel la destruction 24
  • Page 25
  • Constructeur / Destructeur class Wizard { public: Wizard() { etat = true; vie = 20; mana = 0; } ~Wizard() { } }; 25
  • Page 26
  • Allocation dynamique de mmoire malloc et free non adapts (besoin dappel du contructeur) p = new T; donne un pointeur vers une zone de la mmoire pour stocker un objet du type T delete p; dclare la mmoire alloue comme inutile. A MANIER AVEC PRECAUTION 1 NEW = 1 DELETE 26
  • Page 27
  • Membres privs / publiques public / private / protected Encapsulation : cacher des membres lextrieur sassurer quils ne seront pas modifis cration dune interface utilisateur de lobjet 27
  • Page 28
  • Pour pater les voisins 28
  • Page 29
  • Drivation Crer un objet plus spcifique partir dun objet de base. Wizard > WhiteWizard ou BlackWizard (Wizard&)Mon_WhiteWizardAMoi; (WhiteWizard&)Mon_WizardAMoi; 29
  • Page 30
  • Drivation class WhiteWizard:Wizard { public: void Heal(); } Wizard w; WhiteWizard ww; ww.Engage(1); ww.Attaque(w); w.Engage(2); w.Attaque(ww); 30
  • Page 31
  • Drivation Wizard *p_w = &ww; p_w->Engage(3);// OK p_w->Heal();// NOK 31
  • Page 32
  • Fonctions virtuelles WhiteWizard, BlackWizard, MarieWizard ne se soignent pas de la mme faon et on veux que tout Wizard puisse se soigner. On utilise des fonctions qui peuvent tre redfinies dans les classes drives : les fonctions virtuelles 32
  • Page 33
  • Fonctions virtuelles class Wizard { public: virtual void Heal() { vie++; } class WhiteWizard { public: virtual void Heal() { SummonAura(); Wizard::Heal(); } }; 33
  • Page 34
  • Fonction virtuelle pure la contrainte en plus ! class Wizard { public: virtual void Heal() = 0; }; Rend la classe de base abstraite. 34
  • Page 35
  • Surcharge(bis) Surcharge des fonctions et des oprateurs possible Friend (non explicit ici) exemple : matrices 35
  • Page 36
  • Comment viter de refaire des choses dj (bien) faites 36
  • Page 37
  • STL Standard Template Library Bibliothque standard (dans la norme C++) offre des types et des fonctions utiles. Dans le namespace std:: Conteneurs 37
  • Page 38
  • En vrac string vector list map set 38
  • Page 39
  • Notion ditrateur Permet de parcourir le conteneur Syntaxe unifie Similaire aux pointeurs Exemples 39
  • Page 40
  • Pourquoi utiliser la STL ? Rinventer la roue ??? Eviter les bugs (fuites de mmoire principalement) Simplicit dutilisation Efficacit Ecriture du code Code 40
  • Page 41
  • Apres cette courte prsentation A vos compilateurs ! 41

Recommended

View more >