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.

Slides:



Advertisements
Présentations similaires
Erratum C Surcharge For(int x=0; … 2.
Advertisements

Cours n° 7 Standard Template Library II.
C++ 6ème cours Patrick Reuter maître de conférences
Spécialisation/généralisation Héritage Polymorphisme.
Spécialisation/généralisation Héritage Polymorphisme
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.
Langages objet Définitions Traduction des méthodes en C++
Dernière scéance: Des question?????? + Deux exercices.
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.
POO.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Leçon 3 : Héritage IUP 2 Génie Informatique
Programmation orientée objet
Langage Oriente Objet Cours 4.
COURS DE PROGRAMMATION ORIENTEE OBJET :
OBJET Les concepts.
IFT1025, Programmation 2 Jian-Yun Nie
C++ : classes Introduction aux Langages Orientés Objets
Classes abstraites et Interfaces
Introduction au paradigme orienté-objet (suite)
1 PROTOTYPE PGC++ Courbe_parametrique DÉFINITION.
Design Pattern: Decorator
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours du 22 novembre généricité. Chapitre VII Généricité.
Chapitre III Héritage. POO-L3 H. Fauconnier2 Chapitre III: Héritage A) Extensions généralités Affectation et transtypage B) Méthodes Surcharge et signature.
Cours 4 Héritage (suite).
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
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.
Introduction au C++ héritage / polymorphisme
C++ : fonctions et opérateurs
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
INF1101 Algorithmes et structures de données
Une introduction à Java
Formation C++. Hello World ! #include /* Commentaire sur plusieurs lignes */ int main() { //Affiche hello world std::cout
Programmation Orienté Objet en C++ Ricard julien.
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 3 Polymorphisme I.
Héritage et composition
(Vient du grec et signifie « Peut prendre plusieurs formes »)
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)
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Copyright © SUPINFO. All rights reserved La Programmation Orientée Objet en C# 2.0.
La notion de type revisitée en POO
Héritage multiple En langage C++, il est possible d’utiliser l’héritage multiple. Il permet de créer des classes dérivées à partir de plusieurs classes.
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 ?
Notions avancées du C++
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Constructeurs H Batatia. Variable statique Une variable statique est partagée par tous les objets d’une classe.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Un peu de Design Pattern Quelques modèles pour développer vite et bien.
Les surcharges d'opérateurs
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Introduction à la programmation objet avec java
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
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.
Modèle objet : les classes
java : l'héritage (rappel)
Programmation en C++ Héritage
Transcription de la présentation:

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 : public CompteBancaire { public : CompteEpargne (); CompteEpargne (std::string p, int num); ~ CompteEpargne (); protected : float m_tauxIntérêt; public : void FixerTauxIntérêt(); }; compteepargne.h #include #include "compteepargne.h" int main() { CompteEpargne ce; ce. FixerTauxIntérêt(2.25); ce.Crediter(1000); return 0; } prog.cpp Class CompteBancaire { public : CompteBancaire(); CompteBancaire(std::string p, int num); ~ CompteBancaire(); protected : int m_numéro; int m_solde; std::string m_propriétaire; public : void Créditer(float); void Débiter(float); void Fermer(); }; comptebancaire.h #include compteepargne.h CompteEpargne::CompteEpargne() : public CompteBancaire() { } CompteEpargne::CompteEpargne(std::string p, int num) : public CompteBancaire( p, num) { } compteepargne.cpp Le constructeur de la classe dérivée appelle généralement un des constructeurs de la classe de base.

#include " compteepargne.h" int main() { CompteBancaire cb; cb. Debiter(1200); CompteEpargne ce; ce. Debiter(500); CompteBancaire *pCompte; pCompte = new CompteEpargne; CompteBancaire->Debiter(500); return 0; } prog.cpp Si la fonction Debiter() nest pas redéfinie dans la classe CompteEpargne, appelle celle de CompteBancaire. #include comptebancaire.h class CompteEpargne : public CompteBancaire { public : CompteEpargne (std::string p, int num); ~ CompteEpargne (); protected : float m_tauxInteret; public : void FixerTauxInteret(); virtual void Débiter(float); }; compteepargne.h Polymorphisme Un objet héritant une méthode d'une classe parente peut réagir de façon différente à l'appel de cette méthode. #include comptebancaire.h class CompteEpargne : public CompteBancaire { public : CompteEpargne (std::string p, int num); ~ CompteEpargne (); protected : float m_tauxInteret; public : void FixerTauxInteret(); virtual void Debiter(float); }; compteepargne.h #include compteepargne.h void CompteEpargne:: Debiter(float v) { if (v <m_solde) m_solde -= v; } compteepargne.cpp #include comptebancaire.h void CompteBancaire:: Debiter(float v) { m_solde -= v; } comptebancaire.cpp #include " compteepargne.h" int main() { CompteBancaire cb; cb. Debiter(1200); CompteEpargne ce; ce. Debiter(500); CompteBancaire *pCompte; pCompte = new CompteEpargne; pCompte >Debiter(500); return 0; } prog.cpp Si la fonction Debiter() nest pas redéfinie dans la classe CompteEpargne, appelle celle de CompteBancaire. Class CompteBancaire { public : CompteBancaire(); CompteBancaire(std::string p, int num); ~ CompteBancaire(); protected : int m_numero; int m_solde; std::string m_proprietaire; public : void Crediter(float); virtual void Debiter(float); void Fermer(); }; comptebancaire.h Autorise la redéfinition de la fonction dans les classes dérivées Class CompteBancaire { public : CompteBancaire(); CompteBancaire(std::string p, int num); ~ CompteBancaire(); protected : int m_numero; int m_solde; std::string m_proprietaire; public : void Crediter(float); virtual void Debiter(float); void Fermer(); }; comptebancaire.h #include comptebancaire.h class CompteEpargne : public CompteBancaire { public : CompteEpargne (std::string p, int num); ~ CompteEpargne (); protected : float m_tauxInteret; public : void FixerTauxInteret(); virtual void Debiter(float); }; compteepargne.h Si la fonction Debiter() nest pas virtuelle, appelle celle de CompteBancaire.