Programmation Orienté Objet en C++

Slides:



Advertisements
Présentations similaires
POO par Jenny Benois-Pineau 25/03/2017.
Advertisements

Erratum C Surcharge For(int x=0; … 2.
Programmation Orienté Objet en C++
Le langage C++ Les types structurés
C++ 6ème cours Patrick Reuter maître de conférences
Spécification et qualité du logiciel
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
POO.
Programmation Objet en JAVA Mise à Niveau
Programmation Orientée Objet (POO)
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Bibliothèque standard du C++
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
POO : Programmation Orientée Objet
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Bases de la programmation en C++
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Introduction au cours Semaine 1 Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-10541
Structures de données IFT-2000
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
IFT Structures de données
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction au paradigme orienté-objet (suite)
Points importants de la semaine La représentation cachée. Les enregistrements.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Types de données abstrait et mécanismes d'encapsulation
1 Fonction : surcharge de sélection La surcharge de sélection consiste à implanter plusieurs méthodes de même nom dans une même classe à condition que.
CSI1502 Principes fondamentaux en conception des logiciels
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programmation Orienté Objet en C++ Ricard julien.
INF1101 Algorithmes et structures de données
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000 Abder Alikacem Concepts orientés objet Édition Septembre 2009 Département dinformatique et de génie logiciel Département.
Une introduction à Java
Programmation Orienté Objet en C++ Ricard julien.
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Structures de données IFT-2000
Introduction à la programmation orientée objet
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Héritage et composition
AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void)
La notion de type revisitée en POO
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Architecture Logicielle Les blocs d’applications
Arbre GénéalogiqueDiagramme de Classes Comment la visualisation d’une hiérarchie de classes facilitera le travail de notre client ?
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Introduction à la programmation objet en C++
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Les opérateurs L’amitié Les opérateurs Introduction
Les surcharges d'opérateurs
Les classes Introduction aux Langages Orientés Objets
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Programmation Orienté Objet en C++
Langage de Programmation Orientée Objet : C++
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 2.
Transcription de la présentation:

Programmation Orienté Objet en C++ Ricard julien

Organisation Lundi 8h-12h * 10 semaines Cours / TD / TP Participation Contrôle des connaissances : DS promo 50 % + DS groupe 25% + TP 25% Projet C++ Lundi 2h + 2h * 7 semaines Et aujourd’hui : Concept objets et les motivations du C++ Première classe C++ Points syntaxes TP Programmation Orienté Objet en C++

Concept d’objet Réflexion sur la vie d’un logiciel Développement Maintenance Critères de qualités : Correction (ou validité) Extensivité Réutilisabilité Robustesse Modularité Modulaire Monolithique Programmation Orienté Objet en C++

Méthodes de conception descendantes Exemple : Traitement d’un flux d’entrées Critères de qualités Compréhension modulaire Continuité modulaire Protection modulaire Méthodes ascendantes Exemple : mikado Programmation Orienté Objet en C++

Définition d’un module Interface limité Communication limité Interface explicite Masquage des informations Correspond à des unités syntaxiques du langage Fonctions Interface Données Programmation Orienté Objet en C++

La réutilisabilité 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 Définition de nouvelles techniques: La surcharge La généricité Programmation Orienté Objet en C++

Principe de la conception objet Algorithmes + Structures de données = Programme Approche traditionnelle Organiser autour du traitement Fonction 1 Fonction 2 Structures de données Fonction 3 Fonction n Programmation Orienté Objet en C++

La conception objets Organiser autour des données à manipuler Données Fonctions de manipulations et de traitements Objet Programmation Orienté Objet en C++

Objet en C++ Programme C++ Programme C typedef struct { int jour; int mois; int année; } Date; void initData(Data d,int j,int m,int a){ d.jour=j; d.mois=m; d.année=a; } int main(){ Date d; initData(d,2,2,2004); return 0; Class Date { public : void initData(int j,int m,int a); protected: int _jour; int _mois; int _année; }; Date::initData(int j,int m,int a){ _jour=j; _mois=m; _année=a; } int main(){ Date d; d.initData(2,2,2004); return 0; Programmation Orienté Objet en C++

Interface d’une classe class Date { public : int var1; Date(); ~Date(); void initialiser(int j,int m,int a); void afficher(); int getJour(); int getMois(); int getAnnee(); setJour( int j); setMois(int m); setAnnee(int a); protected: int _jour; int _mois; int _année; void _test(); private: }; Section public Attributs public Méthodes public Constructeur Destructeur Fonction d’accès Section protected Section private Programmation Orienté Objet en C++

Implantation d’une class Date::Date(){ _jour=0; _mois_0; _annee=0; } Date::~Date(){} void Data::afficher(){ cout << "la date : " << _jour ; cout << "/" << _mois ; cout << "/" << _annee << endl; int Data::getJour() {return _jours;} int Data::getMois() {return _mois;}; int Data::getAnnee(){return _annee;} Data::setJour(int j) {_jour =j;} Data::setMois(int m) {_mois =m;} Data::setAnnee(int a){_annee=a;} Définition des méthodes de la class : Constructeur Destructeur Fonction d’accès Programmation Orienté Objet en C++

Entrée sortie Nouvelle librairie C++ : #include <iostream.h> Commentaires printf(’’ bonjours a tous \n’’); printf(’’ i= %d \n’’,i); printf(’’ f= %f \n’’,f); printf(’’ c= %c \n’’,c); printf(’’ s= %s \n’’,s); scanf(’’%d’’,&i); scanf(’’%f’’,&f); scanf(’’%c’’,&c); scanf(’’%s’’,&s) cout << ’’ bonjour a tous !!! ’’ << endl; cout << ’’ i= ’’ << i << endl; cout << ’’ f= ’’ << f << endl; cout << ’’ c= ’’ << c << endl; cout << ’’ s= ’’ << s << endl; cout << ’’ f= ’’ << f << endl; cin >> i; cin >> f; cin >> c; cin >> s; /* commentaire sur plusieurs lignes */ // Commentaire sur une seul ligne Programmation Orienté Objet en C++

Structure d’un programme fonction principal : main int main(){ ... return ; } int main(int argc, char *argv[]){ /* Programme avec parametres argc : nombre de parametres ( y compris le nom du programme argv : tableau des parametres */ for( int i=0; i< argc;i++) cout << ‘’ parametre ‘’ << i << ‘’ : ‘’ << argv[i] << endl; return 0; C:/programme/Debug> programme.exe il fait beau Programmation Orienté Objet en C++

Variables Définition des variables au fur et à mesure Constante Taille de tableaux Passage de paramètres int main(){ int a,b=0; a=12; int c; c=12*a+b; int j=0; for(int i=0; i< c;i++) j+=i; return 0; } const int taille=12; int b; b=taille; taille=b; Programmation Orienté Objet en C++

Allocation dynamique Programme C Programme C++ int main(){ int i; const int taille=10; // Allocation int *pointeur= (int*)malloc(sizeof(int)); int *tab= (int*)malloc(sizeof(int)*taille); // utilisation for(i=0;i<taille;i++) tab[i]=i; // suppression et libération mémoire free(tab); free(pointeur); return 0; } int main(){ int i; const int taille=10; // Allocation int *pointeur= new int; int *tab=new int[taille]; // utilisation for(i=0;i<taille;i++) tab[i]=i; // suppression et libération mémoire delete [] tab; delete pointeur; return 0; } Programmation Orienté Objet en C++

Tableau en C++ Tableau statique Tableau dynamique int tab[10]; Date tabDate[10]; Int* tab= new int[10]; Date* tabDate= new Date[10]; Programmation Orienté Objet en C++

Pointeurs et références Designe une espace mémoire int c; int *p; P = new int ; Programmation Orienté Objet en C++