Télécharger la présentation
1
Programmation Orienté Objet en C++
Ricard julien
2
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++
3
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++
4
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++
5
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++
6
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++
7
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++
8
La conception objets Organiser autour des données à manipuler Données
Fonctions de manipulations et de traitements Objet Programmation Orienté Objet en C++
9
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++
10
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++
11
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++
12
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++
13
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++
14
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++
15
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++
16
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++
17
Pointeurs et références
Designe une espace mémoire int c; int *p; P = new int ; Programmation Orienté Objet en C++
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.