Introduction à l héritage en C++

Dimension: px
Commencer à balayer dès la page:

Download "Introduction à l héritage en C++"

Transcription

1 Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition mise à jour, Claude Delannoy, Editions Eyrolles 2 1

2 Qu'est ce que l'héritage? L'héritage consiste, à partir d'une classe existante A, à définir une nouvelle classe B. La classe existante A est appelée classe mère, ou classe de base. La nouvelle classe B est appelé classe fille ou classe dérivée. On dit que la classe B dérive ou hérite de la classe A. Une classe fille hérite automatiquement des données et méthodes de sa classe mère sans avoir à les réécrire. Une classe mère peut avoir plusieurs classes filles. Une classe fille peut elle même servir de classe mère pour une autre classe fille. On parle d héritage simple, quand une classe fille hérite d une seule classe mère. On parle d héritage multiple, quand une classe fille hérite simultanément de plusieurs classes mères. 3 Exemple Classe Véhicule Classe DeuxRoues Classe QuatreRoues Classe Vélo Classe Moto Classe Fourgonnette Classe Voiture 4 2

3 Utilité de l'héritage L héritage permet de réutiliser des classes existantes. L'héritage permet d'adapter des classes existantes à ses propres besoins. L'héritage permet de faire évoluer les classes sans avoir à les réécrire de A àz. L'héritage permet de modulariser les classes et de les spécialiser au fur et à mesure des besoins. L'héritage permet d'éviter de construire des classes de taille trop importante. Il n'est pas nécessaire de disposer du code source de la classe existante pour en faire dériver une classe fille. Il suffit simplement d'avoir le fichier de déclaration de la classe mère ( fichier.h) et son fichier objet (fichier.o ou fichier.lib). 5 Exemple Soit la classe Point déclarée dans le fichier "Point.h" suivant: #ifndef _POINT_H_ #define _POINT_H_ class Point protected : int x,y; public : void initialiser (int abs,int ord); void deplacer (int dx,int dy); void afficher() const; #endif Nous verrons par la suite la signification de protected 6 3

4 Fichier Point.C #include <iostream> #include "Point.h" using namespace std; void Point::initialiser (int abs, int ord) x=abs; y=ord; void Point::deplacer (int dx, int dy) x+=dx; y+=dy; void Point::afficher() const cout<<"je suis en "<<x<<" "<<y<<endl; 7 Nouveaux besoins La classe Point traite des points dénués de couleur. Supposons qu'on ait besoin de traiter des points colorés. 2 solutions sont possibles : 1. Modifier la classe Point Ceci implique de disposer du fichier source "Point.C". Les programmes qui utilisaient la classe Point risquent de ne plus fonctionner si on les recompile avec la nouvelle version de la classe Point. 2. Dériver une nouvelle classe PointCol à partir de la classe Point Il n'est pas nécessaire de disposer du fichier source "Point.C". Il suffit de disposer du fichier "Point.h" et du fichier objet "Point.o". Les programmes qui exploitaient la classe Point continueront de fonctionner avec la même la classe Point. La 2ème solution est meilleure 8 4

5 PointCol.h #ifndef _POINTCOL_H_ #define _POINTCOL_H_ #include "Point.h" class PointCol : public Point protected : int couleur; public : void colorer (int c); #endif Nous verrons par la suite la signification de protected 9 PointCol.C #include "PointCol.h" void PointCol::colorer (int c) couleur=c; 10 5

6 Prog.C #include "PointCol.h" void main() PointCol p; p.initialiser(10,20); p.colorer(5); p.afficher(); p.deplacer(2,4); p.afficher(); Je suis en Je suis en Compilation et édition de liens PointCol.h PointCol.C Prog.C Point.h Point.o PointCol.o Prog.o Exécutable 12 6

7 affichercol Comment faire pour afficher aussi la couleur? 1ère solution : ajouter dans la classe PointCol une méthode affichercol void PointCol::afficherCol ( ) const cout<<"je suis en "<< x <<" "<< y <<endl; cout<<" et ma couleur est : "<<couleur<<endl; 13 Utilisation des membres de la classe de base dans une classe dérivée On remarque que le premier traitement fait par affichercol (affichage des coordonnées) correspond au traitement fait par la méthode afficher de la classe Point Or on sait que la classe PointCol hérite des méthodes publiques de sa classe mère Point. On peut donc utiliser la méthode afficher dans la classe PointCol void PointCol::afficherCol () const afficher( ); cout<<" et ma couleur est : "<<couleur<<endl; 14 7

8 initialisercol La même démarche peut être appliquée pour initialiser un point coloré void PointCol::initialiserCol (int abs, int ord, int coul) initialiser(abs,ord); couleur=coul; 15 PointCol.h #ifndef _POINTCOL_H_ #define _POINTCOL_H_ #include "Point.h" class PointCol : public Point protected : int couleur; public : void colorer (int c) couleur=c; void affichercol ( ) const; void initialisercol (int,int,int); #endif 16 8

9 PointCol.C #include <iostream> #include "PointCol.h" using namespace std; void PointCol::afficherCol () const afficher(); cout<<" et ma couleur est : "<<couleur<<endl; void PointCol::initialiserCol (int abs, int ord, int coul) initialiser(abs,ord); couleur=coul; 17 Prog.C #include "PointCol.h" void main() PointCol p; p.initialisercol(10,20,5); p.affichercol(); p.afficher(); p.deplacer(2,4); p.affichercol(); p.colorer(2); p.affichercol(); Je suis en et ma couleur est : 5 Je suis en Je suis en et ma couleur est : 5 Je suis en et ma couleur est :

10 Redéfinition des membres d une classe dérivée Conceptuellement, afficher et affichercol réalisent le même traitement : affichage il n est donc pas nécessaire d utiliser un nom différent pour les méthodes d affichage d un point monochrome et d un point coloré Utiliser l opérateur :: pour accéder à la méthode de la classe mère 19 PointCol.h #ifndef _POINTCOL_H_ #define _POINTCOL_H_ #include "Point.h" class PointCol : public Point protected : int couleur; public : void colorer (int c) couleur=c; void afficher () const; void initialiser (int,int,int); #endif 20 10

11 PointCol.C #include <iostream> #include "PointCol.h" using namespace std; void PointCol::afficher () const Point::afficher(); cout<<" et ma couleur est : "<<couleur<<endl; void PointCol::initialiser (int abs,int ord, int coul) Point::initialiser(abs,ord); couleur=coul; 21 Prog.C #include "PointCol.h" void main() PointCol p; p.initialiser(10,20,5); p.afficher(); p.point::afficher(); p.deplacer(2,4); p.afficher(); p.colorer(2); p.afficher(); Je suis en et ma couleur est : 5 Je suis en Je suis en et ma couleur est : 5 Je suis en et ma couleur est :

12 Remarque class A class B : public A public : public : int a; float a; char b; B x; int i=x.a::a; float r=x.a; Le même principe s applique aux données membres. 23 Les modificateurs d accès il existe en fait 3 modificateurs d accès private Les membres privés d une classe, ne peuvent être accédés que par les méthodes de cette même classe (et les fonctions amies) public Les membres publiques d une classe, peuvent être accédés par tout le monde (méthodes de cette même classe, méthodes d autres classes et fonctions externes, amies ou non amies) protected Les membres protégés d une classe ne peuvent être accédés que par les méthodes de cette même classe, les fonctions amies et les méthodes des classes directement dérivées. L accès par les méthodes des classes indirectement dérivées (une classe A qui hérite d une classe B qui hérite d une classe C) dépendra du type de Le même principe l héritage. s applique aux données membres

13 Les types d héritage 1. L héritage publique class PointCol : public Point... Les membres publiques de la classe mère restent publiques dans la classe fille. Les membres protégés de la classe mère restent protégés dans la classe fille. Les membres privés de la classe mère sont inaccessibles. 25 L héritage publique Statut dans la Nouveau statut dans la classe fille L héritage classe mère publique Accès par les méthodes de la classe fille Accès par des entités externes Public Public Oui Oui Protected Protected Oui Non Les membres publiques de la classe mère restent publiques dans Private la classe fille. Private Non Non Les membres protégés de la classe mère restent protégés dans la classe fille. Entités externes : méthodes d autres classes ou fonctions externes Les membres (non amies) privés de la classe mère sont inaccessibles

14 Les types d héritage 2. L héritage protégé class PointCol : protected Point... Les membres publiques de la classe mère deviennent protégés dans la classe fille. Les membres protégés de la classe mère restent protégés dans la classe fille. Les membres privés de la classe mère sont inaccessibles. 27 L héritage protégé Statut dans la classe mère Nouveau statut dans la classe fille Accès par les méthodes de la classe fille Accès par des entités externes Public Protected Oui Non Protected Protected Oui Non Private Private Non Non 28 14

15 Les types d héritage 3. L héritage privé class PointCol : private Point... Les membres publiques de la classe mère deviennent privés dans la classe fille. Les membres protégés de la classe mère deviennent privés dans la classe fille. Les membres privés de la classe mère sont inaccessibles. 29 L héritage privé L héritage publique Statut dans la classe mère Nouveau statut dans la classe fille Accès par les méthodes de la classe fille Accès par des entités externes Public Private Oui Non Protected Private Oui Non Les membres publiques de la classe mère restent publiques dans la classe fille. Les membres Private protégés Private de la classe Non mère restent Non protégés dans la classe fille. Les membres privés de la classe mère sont inaccessibles

Programmation C++ (débutant)/les structures

Programmation C++ (débutant)/les structures Programmation C++ (débutant)/les structures 1 Programmation C++ (débutant)/les structures Le cours sur les structures Présentation Nous avons utilisé pour l'instant des types de base : ils contiennent

Plus en détail

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,

Plus en détail

AP2 - programmation objet en C++ Semestre 2, année 2009-2010. Février 2010

AP2 - programmation objet en C++ Semestre 2, année 2009-2010. Février 2010 Constantes, variables et méthodes de classe AP2 - programmation objet en C++ Semestre 2, année 2009-2010 Département d informatique IUT Bordeaux 1 Février 2010 1 / 13 Projet Le projet Situation : une classe

Plus en détail

Introduction aux méthodes Orientées Objets Troisième partie

Introduction aux méthodes Orientées Objets Troisième partie Introduction aux méthodes Orientées Objets Troisième partie Modélisation avec UML 2.0 Programmation orientée objet en C++ Pré-requis: maitrise des bases algorithmiques (cf. 1 ier cycle), maitrise du C

Plus en détail

Tutoriel de création et d utilisation d une bibliothèque dynamique (dll)

Tutoriel de création et d utilisation d une bibliothèque dynamique (dll) Tutoriel de création et d utilisation d une bibliothèque dynamique (dll) Cette procédure démontre comment on crée une bibliothèque dynamique (Dynamic Link Library ou DLL) contenant des classes utiles pour

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2011/2012 Programmation Orientée Objet Introduction à

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

TP Qt : Prise en main

TP Qt : Prise en main Université de Strasbourg UFR de Mathématiques et d Informatique Département d Informatique Licence 3 d Informatique IHM Année 2009/2010 TP Qt : Prise en main Objectif Le but de ce tp est une prise en main

Plus en détail

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique.

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique. Le langage C++ Master Actuariat Séance 5 : Les flots C++ - F.CHAKER- M1 Actuariat 2014/2015 1 Les entrées sorties en C++ Les entrées et les sorties sont considérées comme des flots. Un flot est associé

Plus en détail

INF 2005 Programmation orientée objet avec C++

INF 2005 Programmation orientée objet avec C++ INF 2005 Programmation orientée objet avec C++ Module 4 - Solutions 1. #include using namespace std; class Temps public: Temps(); void setheure(int h) heure = (h >= 0 && h < 24)? h : 0; void setminute(int

Plus en détail

Notions de programmation orientée objet

Notions de programmation orientée objet 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/04/2007 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent,

Plus en détail

Classes (2) Un objet est un élément de la classe. C'est une instance de la classe. Il est obtenu par instanciation.

Classes (2) Un objet est un élément de la classe. C'est une instance de la classe. Il est obtenu par instanciation. Classes 1. Objectif 2. Déclaration 3. Définition 4. Encapsulation 5. Constructeurs 6. Une classe de complexes 7. Une classe de rationnels 8. Surcharge d'opérateurs 9. Liste d'initialisation 10. Membres

Plus en détail

POO. par Jenny Benois-Pineau

POO. par Jenny Benois-Pineau POO par Jenny Benois-Pineau 1 Introduction Pourquoi POO? Crise du logiciel Robustesse, interchangeabilité des composantes, réutilisation du code, extensibilité, protection Langages : Java, Smalltalk, Eiffel,

Plus en détail

1. Introduction Ce document est actuellement la compilation de notes de cours C++ donné en MIAIF, DESS, MST2.

1. Introduction Ce document est actuellement la compilation de notes de cours C++ donné en MIAIF, DESS, MST2. POLYCOPIE DE C++ 1. Introduction Ce document est actuellement la compilation de notes de cours C++ donné en MIAIF, DESS, MST2. Plan du cours 2. présentation générale 3. minimum sur les entrées sorties

Plus en détail

Composition de classes, classes et fonctions amies, et héritages

Composition de classes, classes et fonctions amies, et héritages Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 4 (L2) - Mention Mathématiques, Informatique Année universitaire 2016/2017 Programmation Orientée Objet Composition de

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Langage C++ Classe de première SI

Langage C++ Classe de première SI Langage C++ Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...3 2. Les variables...3 2.1. Déclarer une variable...3 2.2. Les constantes...4

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE LOG2410 Conception logicielle Solutionnaire examen final Automne 2008 Documentation : Aucune Calculatrice : Aucune Date : 13 décembre 2008

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

TP Qt : QtCreator / QtDesigner

TP Qt : QtCreator / QtDesigner TP Qt : QtCreator / QtDesigner 2014 tv - v.1.0 - produit le 5 décembre 2014 Sommaire Environnement de Développement Intégré (EDI) 2 Travail pratique 2 Objectifs................................................

Plus en détail

Classes et objets. 1 Introduction

Classes et objets. 1 Introduction 9 Dans le premier chapitre, nous avons fait une distinction entre : Les langages procéduraux, disposant de la notion de fonction, outil qui permet de structurer un programme en le décomposant en des parties

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 5 : l héritage Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett Héritage Introduction - Pour raccourcir les temps d écriture

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

Correction des exercices de préparation pour l'examen final

Correction des exercices de préparation pour l'examen final Correction des exercices de préparation pour l'examen final Exercice 1) Dites ce qui sera affiché par le programme suivant : class point { float x,y; public : point(float abs=0.0,float ord=0.0) { x=abs;

Plus en détail

Date: Jan 29 Fev 1, 2001 CSI2531 Page:1 Profs. Moura et Japkowicz Tutoriel 4

Date: Jan 29 Fev 1, 2001 CSI2531 Page:1 Profs. Moura et Japkowicz Tutoriel 4 Date: Jan 29 Fev 1, 2001 CSI2531 Page:1 Chapitre 11 de C++ Annotation version 4.3.1, Frank B. Brokken et Karel Kubat. Héritage Classes reliées : vehicule terre eau air auto Définition de la classe vehicule

Plus en détail

IFT-2900 Algorithmes de l'ingénieur 1. Notions avancées de programmation en C/C++

IFT-2900 Algorithmes de l'ingénieur 1. Notions avancées de programmation en C/C++ IFT-2900 Algorithmes de l'ingénieur 1 Notions avancées de programmation en C/C++ Notions avancées de programmation 1. Compilation et édition de liens Fichiers impliqués Exemple Dépendances entre les fichiers

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ D après les notes d introductives au C++ de Stéphane Menozzi http://www.proba.jussieu.fr/~menozzi/ Maxime Pallud IMACS/X-TEC Bat 404 Tel: 01 69 33 46 86 Mail: pallud@imacs.polytechnique.fr

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

École Nationale Polytechnique Département Génie Industriel Algorithmique et Programmation. Programmation Orientée Objet Annexes. TP 1.

École Nationale Polytechnique Département Génie Industriel Algorithmique et Programmation. Programmation Orientée Objet Annexes. TP 1. École Nationale Polytechnique Département Génie Industriel Algorithmique et Programmation Programmation Orientée Objet Annexes. TP POO Manip 1 #include using namespace std; int k = 30; int main()

Plus en détail

Chapitre 15. Héritage

Chapitre 15. Héritage Chapitre 15 : Héritage 229 Chapitre 15 Héritage Chapitre 15 : Héritage 230 1. Généralités - L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

Programmation C++ Le langage impératif. Stéphane Vialette. 12 novembre 2012. LIGM, Université Paris-Est Marne-la-Vallée

Programmation C++ Le langage impératif. Stéphane Vialette. 12 novembre 2012. LIGM, Université Paris-Est Marne-la-Vallée Programmation C++ Le langage impératif Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée 12 novembre 2012 Stéphane Vialette (LIGM UPEMLV) Programmation C++ 12 novembre 2012 1 / 67 C++ : chronologie

Plus en détail

De Java (et C) à C++

De Java (et C) à C++ De Java (et C) à C++ Historique Syntaxe basée sur le langage C Bjarne Stroustrup 1979 : C with classes 1983 : renommé C++ 1985 : The C++ Programming Language, première édition 1998 : premier standard 2003

Plus en détail

Les outils de développement en langage C++

Les outils de développement en langage C++ Les outils de développement en langage C++ Sommaire Les étapes de réalisation d'un exécutable Le pré processeur La création d'un exécutable Les étapes de réalisation d'un exécutable Traitement des fichiers

Plus en détail

Quelques éléments de compilation en C et makefiles

Quelques éléments de compilation en C et makefiles Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ But Programmer une classe en C++ permettant de faire du calcul par intervalles L utiliser pour résoudre un problème de localisation «range only» (EX : plusieurs émetteurs et

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

Langage de programmation C++

Langage de programmation C++ Langage de programmation C++ Mohamed Tounsi Institut Supérieur d'informatique et Mathématiques Monastir Janvier 2013 Mohamed Tounsi (ISIMM) Langage de programmation C++ Janvier 2013 1 / 14 La notion de

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN :

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 7 Notions de classe, constructeur et destructeur Rappels Les possibilités de Programmation

Plus en détail

Bibliothèques pour l'écran tactile de la carte MCBSTM32C

Bibliothèques pour l'écran tactile de la carte MCBSTM32C Bibliothèques pour l'écran tactile de la carte MCBSTM32C 1 Bibliothèque pour utiliser l'écran LCD Pour utiliser l'écran LCD il faut: inclure le fichier GLCD.h dans le programme main inclure la bibliothèque

Plus en détail

char (1) short (2) int (4) long int (8) long long int (8) unsigned char unsigned int unsigned short unsigned long int unsigned long long int

char (1) short (2) int (4) long int (8) long long int (8) unsigned char unsigned int unsigned short unsigned long int unsigned long long int char (1) short (2) int (4) long int (8) long long int (8) unsigned char unsigned int unsigned short unsigned long int unsigned long long int float (4) double (8) long double (16) char* (8) int* (8)...

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail

CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 BELGIQUE 04/366.90.43

CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 BELGIQUE 04/366.90.43 PROFESSEUR CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 PR. PETER SCHLAGHECK BÂT. B5 PHYSIQUE QUANTIQUE STATISTIQUE ALLÉE DU 6 AOÛT 17 4000 LIÈGE 1 BELGIQUE

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail

0.1 Création d une bibliothèque

0.1 Création d une bibliothèque 0.1 Création d une bibliothèque 1 0.1 Création d une bibliothèque Je vais ici simplement me contenter de reprendre l exemple de l introduction et réécrire le programme cette fois en utilisant une bibliothèque

Plus en détail

Algorithmique Correction du DS1

Algorithmique Correction du DS1 Algorithmique Correction du DS1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Exercice 1 Exercice 1 Un service de reprographie facture : 0.10

Plus en détail

Typage et sous-typage dans les Langages à Objets.

Typage et sous-typage dans les Langages à Objets. Typage et sous-typage dans les Langages à Objets. Application au langage C++ N. Hameurlain http://www.univ-pau/fr/~hameur Licence TechWeb : CPO 1 Objectifs du typage? Introduire une plus grande fiabilité

Plus en détail

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

Plus en détail

On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère

On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère Cours 4 Héritage Classe abstraite Interface POO 1 On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère la classe dérivée

Plus en détail

La surcharge. Chapitre 6

La surcharge. Chapitre 6 Chapitre 6 La surcharge Le mot polymorphisme veut dire qui a plusieurs formes. Le polymorphisme, sous une forme embryonnaire, se rencontre pratiquement dans tout langage de programmation. Par exemple l

Plus en détail

1 Notions de base 1.1 Structure d'un programme

1 Notions de base 1.1 Structure d'un programme 1 Notions de base 1.1 Structure d'un programme Le langage C++ contient le langage C : tout programme écrit en C à la norme ANSI doit pouvoir être compilé par un compilateur C++. C++ fait la diérence entre

Plus en détail

Le langage C. Les bases Jean-Pierre Fournier,

Le langage C. Les bases Jean-Pierre Fournier, Le langage C Les bases Jean-Pierre Fournier, http://www.iut-orsay.fr/~fournier jpf@fiifo.u-psud.fr Un peu d histoire B (Bell labs) (1970) [Ken Thompson] NB (new B) (B + types) (1971) [Dennis Ritchie] C

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ING1025 : INFORMATIQUE EXAMEN INTRA Date Vendredi 10 octobre 2003 Heure De 8h30 à 10h20 Notes Ce questionnaire contient 4 questions sur

Plus en détail

Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Mémoire et allocation dynamique Cours Langage C/C++ Mémoire et allocation dynamique Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 La pile et le tas La mémoire La mémoire dans un ordinateur est une succession d octets (soit 8 bits),

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Introduction à C++ et à wxwidgets

Introduction à C++ et à wxwidgets Introduction à C++ et à wxwidgets Master IGC 1ère année Année universitaire 2011/2012 Christophe Renaud Version 1.5 19/09/2011 Introduction Objectifs du cours Introduction au langage objet C++ Introduction

Plus en détail

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens Année académique 2009 2010 1 Introduction Ce projet est le premier d une série de quatre projets qui ont

Plus en détail

INITIATION A LA PROGRAMMATION ORIENTEE OBJET (POO)

INITIATION A LA PROGRAMMATION ORIENTEE OBJET (POO) Objectifs INITIATION A LA PROGRAMMATION ORIENTEE OBJET (POO) Bertrand Vandeportaele IUT GEII TOULOUSE 2015 Objectifs Connaître les possibilités offertes par la POO Comprendre les concepts Savoir utiliser

Plus en détail

IN104. Programmation orientée objet Introduction aux objets

IN104. Programmation orientée objet Introduction aux objets IN104 Programmation orientée objet Introduction aux objets Séance de Travaux Dirigés du 24 septembre 2009 B. Monsuez, F. Védrine Exercice 1 Notre compteur en C++ Nous étudions dans cet exercice l exemple

Plus en détail

Tableaux dynamiques avec vector

Tableaux dynamiques avec vector Tableaux dynamiques avec vector Tableaux statiques Les tableaux que nous avons vus jusqu'ici sont des tableaux statiques: int tab[3]; Cette forme de tableaux vient du langage C, et est encore très utilisée.

Plus en détail

IFT1166 - INTRA. Directives: IFT1166 - Session Automne, Intra. Mohamed Lokbani. Prénom(s): Date:20 Octobre 1999

IFT1166 - INTRA. Directives: IFT1166 - Session Automne, Intra. Mohamed Lokbani. Prénom(s): Date:20 Octobre 1999 IFT1166 - Session Automne, Intra Mohamed Lokbani IFT1166 - INTRA Nom: Prénom(s): Signature: Code perm: Date:20 Octobre 1999 Durée: 2 heures (de 18h30: 20h:30) Local: 1360 Directives: - Il vous est permis

Plus en détail

Stéphane GOBRON HES SO HE Arc ISIC

Stéphane GOBRON HES SO HE Arc ISIC Stéphane GOBRON HES SO HE Arc ISIC 2015 Où en sommes nous? Plan de cours Ch.1 : OO Rappels Ch.2 : Etude de cas => le bridge DP Ch.3 : Conceptualisation, Singleton et Composite DPs Ch.4 : Decorator, State,

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

TP 02 : Création d un projet Qt

TP 02 : Création d un projet Qt Université de Strasbourg UFR de Mathématiques et d Informatique Département d Informatique Licence 3 d Informatique IHM Année 2010 2011 TP 02 : Création d un projet Qt Résumé Objectif des TP est de créer

Plus en détail

Ecrire un Makefile, sans douleur et en quelques leçons.

Ecrire un Makefile, sans douleur et en quelques leçons. Ecrire un Makefile, sans douleur et en quelques leçons. M. Billaud Département Informatique Institut Universitaire de Technologie Université Bordeaux 1 Mai 2010 Résumé Ce document montre comment écrire

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Programmation orientée objet avec C++

Programmation orientée objet avec C++ Programmation orientée objet avec C++ ACOO Analyse, Conception et développement Orientés Objet de logiciels de commande Thèmes abordés Présentation du langage C++ Principales différences par rapport au

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

Programmation par Objets

Programmation par Objets Programmation par Objets Licence d'informatique 2004-05 A.Bès 1 - 18h de cours - 4h30 de TD (3 séances) - 18h de TP (6 séances) Organisation Projet commun avec le cours de Développement de Programmes Contenu

Plus en détail

C++ / MC-II1 - Cours n o 5 Polymorphisme. Bibliothèque standard

C++ / MC-II1 - Cours n o 5 Polymorphisme. Bibliothèque standard C++ / MC-II1 - Cours n o 5 Polymorphisme Surdéfinition opérateurs Bibliothèque standard Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MC-II1 - Cours 5 2010-2011 1 / 49 Sommaire

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2 2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

1.1- Compiler et exécuter un premier programme en C++

1.1- Compiler et exécuter un premier programme en C++ 1.1- Compiler et exécuter un premier programme en C++ 1- Un premier programme en C++ 2- Compilation et exécution 1- Un premier programme en C++ Le premier programme que propose le cours consiste à afficher

Plus en détail

Tutorial: Compiler un programme en C++

Tutorial: Compiler un programme en C++ Tutorial: Compiler un programme en C++ Ce tutorial propose de reprendre dans deux cas de figures (un unique fichier source, et plusieurs fichiers sources en c++11 différentes approches permettant de compiler

Plus en détail

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

L agenda électronique

L agenda électronique L agenda électronique Figure 1 : vision d'un agenda électronique pour une semaine donnée Dans cette application, nous allons programmer en C++ les sous-programmes et le programme nécessaire à la saisie

Plus en détail

Introduction à Visual C++

Introduction à Visual C++ Algorithmique/Langage 1ère année Introduction à Visual C++ Yacine BELLIK IUT d Orsayd Université Paris XI Plan Aperçu u global de l'environnement Zone des messages Zone d'édition dition Zone d'exploration

Plus en détail

MEUTER Cédric / LEVY Eythan. Université Libre de Bruxelles 23/09/2005

MEUTER Cédric / LEVY Eythan. Université Libre de Bruxelles 23/09/2005 Développement en C sous LINUX MEUTER Cédric / LEVY Eythan Université Libre de Bruxelles 23/09/2005 Développement en C sous LINUX p. 1 Comment écrire son programme? Principaux éditeurs : XEmacs Emacs vi

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

INFO-F-101 Programmation Projet 4

INFO-F-101 Programmation Projet 4 INFO-F-101 Programmation Projet 4 Année académique 2008-2009 1 Introduction Une image peut-être décomposée en un tableau de points élémentaires appelés pixels (abréviation de picture element). Supposons

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (entrainement) durée 1h20 Tous documents et calculatrices autorisés. Le sujet comporte 5 pages Le temps approximatif ainsi que le barème

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ Adaptée à l environnement VLE Gauthier Quesnel quesnel@users.sourceforge.fr Institut National de la Recherche Agronomique G. Quesnel (INRA) Cours C++ / VLE 1 / 49 Plan 1 Les

Plus en détail

IFT159 Analyse et programmation

IFT159 Analyse et programmation IFT159 Analyse et programmation Chapitre 2 Gabriel Girard Département d informatique 2 septembre 2008 1 Qu est-ce qu un programme C++ 2 Commentaires (1) Directives au compilateur (2) Fonctions (4) 3 float

Plus en détail

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1 Cours 13 Les classes abstraites Les méthodes abstraites Les interfaces F. Gayral 1 Un exemple pour mieux comprendre Pas d'instanciation d'un humain : un humain, c'est - soit un homme - soit une femme Humain

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main Rappels Java V.Marangozova-Martin 1 Classes, instanciation, objets, main Java est un langage pour la programmation orientée-objet (POO). La programmation par objets permet de structurer les programmes

Plus en détail

Omnet++ Olivier FLAUZAC

Omnet++ Olivier FLAUZAC Omnet++ Olivier FLAUZAC olivier.flauzac@univ-reims.fr http://www.flauzac.eu Généralités Omnet++ Simulateur à événement discret Simulation algorithmes distribués protocoles Mode d exécution mode graphique

Plus en détail

Examen de Programmation I

Examen de Programmation I Examen de Programmation I Sciences et Technologies du Vivant, Semestre 1 Mercredi 22 décembre 2010 1. N oubliez pas de mettre vos NOM et PRÉNOM sur toutes vos copies. 2. Merci de garder la donnée. 3. Vous

Plus en détail