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.

Slides:



Advertisements
Présentations similaires
Programmation Orienté Objet en C++
Advertisements

Cours n° 7 Standard Template Library II.
C++ 6ème cours Patrick Reuter maître de conférences
C++ 5ème cours Patrick Reuter maître de conférences
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.
Cours n° 8 Conception et Programmation à Objets
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
Leçon 3 : Héritage IUP 2 Génie Informatique
Athapascan-1 Interface C++ de programmation parallèle
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
POO-L3 H. Fauconnier1 Tableau et héritage Y[] yA=new Y[3]; X[] xA=yA; //ok xA[0]=new Y(); xA[1]=new X(); //non xA[1]=new Z(); //non Object XX[]int[] YZY[]Z[]
Chapitre VII Généricité. POO-L3 H. Fauconnier2 Chapitre VII 1. Principes généraux 2. Types génériques imbriqués 3. Méthodes génériques 4. Types paramètres.
IFT1025, Programmation 2 Jian-Yun Nie
C++ : classes Introduction aux Langages Orientés Objets
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.
Standard Template Library (STL)
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é.
DESS CCI POO-JAVA TD n°7 exercice n°1
Structures de données IFT Abder Alikacem La classe vector Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Espace de nommage Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 5 : La surcharge des opérateurs Département dinformatique.
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.
Conteneurs STL.
1 PROTOTYPE PGC++ Vecteur_3D DÉFINITION. 2 class Vecteur_3D { private : float vx, vy, vz, vw; // Représentation en coordonnées homogènes. public : Vecteur_3D();
1 PROTOTYPE PGC++ Courbe_parametrique DÉFINITION.
Les arbres binaires.
Cours 4 Héritage (suite).
Introduction au C++ héritage / polymorphisme
Héritage Lhéritage permet de spécialiser une classe en définissant une relation de type « est une sorte de ». #include comptebancaire.h class CompteEpargne.
C++ : fonctions et opérateurs
4ième Classe (Mercerdi, 27 octobre) CSI2572. H L'agrégation est un type de relation entre deux classes qui traduit les relations Est composé de... ou.
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é.
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT-2000 Abder Alikacem Retour sur les listes ordonnées Département dinformatique et de génie logiciel Édition Septembre 2009.
Une introduction à Java
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Structures de données IFT-2000
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Chapitre IX Gestion de flux.
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
Cours 9 Exceptions (fin) Généricité. POO-L3 H. Fauconnier2 Chaînage d'exceptions  Une exception peut être causée par une autre.  il peut être utile.
11/04/ L'héritage Cours 7 Cours 7.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
12/04/ Le polymorphisme Cours 8 Cours 8.
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Introduction à la programmation objet en C++
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
Un peu de Design Pattern Quelques modèles pour développer vite et bien.
Les opérateurs L’amitié Les opérateurs Introduction
Les surcharges d'opérateurs
Cours du 5 novembre.
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Cours C++ Master Actuariat Séance 9: La classe Liste chaînée
PRO-1027 Programmation Scientifique en C
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
Programmation en C++ Fonctions
Programmation en C++ Fonctions
Int 10. Int 6.
Transcription de la présentation:

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 la liste des arguments diffère class Vecteur { protected: int m_x, m_y; public : Vecteur() {m_x = m_y = 0;} Vecteur(int x, int y) {m_x = x; m_y = y;} void Deplace(int x, int y); void Deplace(const Vecteur& v); }; int main() { Vecteur v1(3, 5), v2(6, 7); v1. Deplace(8, 9); v1. Deplace(v2); v1. Deplace(10);// Impossible return 0; } Vecteur::Deplace(int x, int y) { m_x += x; m_y += y; } Vecteur:: Deplace(const Vecteur& v) { m_x += v.m_x; m_y + = v.m_y; }

2 Surcharge dopérateurs Permet de redéfinir les opérateurs pour un objet quelconque Si est un opérateur binaire, n m peut sinterpréter comme n.operator (m) Ex : n + m sinterprète comme n.operator+( m ) Si est un opérateur unaire, n peut sinterpréter comme n.operator () Ex : n++ sinterprète comme n.operator++() Cas particulier : le compilateur génère un opérateur daffectation par défaut ; il est souvent nécessaire de le redéfinir La plupart des opérateurs peuvent être redéfinis pour nimporte quelle classe

3 Surcharge dopérateurs : exemple class Vecteur { public : protected: int m_x, m_y; public : Vecteur() {m_x = m_y = 0;} Vecteur(int x, int y) {m_x = x; m_y = y;} bool operator==(const Vecteur & v); Vecteur & operator=(const Vecteur & v); Vecteur & operator+(const Vecteur & v); friend std::ostream& operator<<(std::ostream& os, const Vecteur& v); }; vecteur.h int main() { Vecteur v1(3, 5), v2(6, 8), v3, v4; v3 = v1 + v2;// Opérateur = et opérateur + v4 = v3; // Opérateur = if (v3 == v4)// Opérateur = = std::cout << « Vecteurs identiques ; cest normal !\n "; std::cout << v4; ofstream f(« fichier.txt »); f << v4; f.close(); return 0; } main.cpp bool Vecteur ::operator==(const Vecteur & v) { return (m_x == v. m_x && m_y == v. m_y); } Vecteur & Vecteur ::operator=(const Vecteur & v) { m_x = v. m_x ; m_y = v. m_y ; return *this; // this contient ladresse de lobjet lui-même } Vecteur Vecteur ::operator+(const Vecteur & v) { Vecteur vv(m_x + z.m_x, m_y + z.m_y); return vv; } std::ostream& operator<< (std::ostream& os, Vecteur& v) { os << « Abscisse " << v.m_x << "\n"; os << « Ordonnée " << v.m_y << "\n"; return os; } vecteur.cpp

4 Surcharge dopérateurs +-*/%=! +=-=*=/=%=++-- <><=>===!=&&|| &|^<<>> []newdelete Opérateurs pouvant être redéfinis