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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

É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

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

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

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

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

et Programmation Objet

et Programmation Objet FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------

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

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

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

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

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

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

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

Programmation orientée objet : le cas de C++

Programmation orientée objet : le cas de C++ Ecole Doctorale MathIf Programmation orientée objet : le cas de C++ Violaine Louvet 1 1 ICJ - CNRS Année 2009-2010 Objectifs de ce cours Connaître et comprendre les concepts de la programmation orientée

Plus en détail

Algorithmique Classes, instances, objets [oo]

Algorithmique Classes, instances, objets [oo] Algorithmique Classes, instances, objets [oo] Cours, 25 juin 2012 Table des matières 1 Approche impérative v.s. objet / oo00acours1 4 1.1 Approche impérative Approche objet................... 4 1.2 Dualités

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

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

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

Projet de Programmation Benoit Donnet Année Académique 2015-2016

Projet de Programmation Benoit Donnet Année Académique 2015-2016 Projet de Programmation Benoit Donnet Année Académique 2015-2016 1 Agenda Partie 1: Techniques Avancées de C Chapitre 1: Définition de Type Chapitre 2: Généricité Chapitre 3: Arguments d'un Programme 2

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

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

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

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

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

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

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

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

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

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C La société C fabrique des pièces métalliques réalisées dans son atelier. La société C est en relation commerciale uniquement

Plus en détail

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.

Plus en détail

1. Introduction Ce document doit, à terme, être un polycopié Java pour les étudiants de MIAIF2, DESS, MASS, MST2.

1. Introduction Ce document doit, à terme, être un polycopié Java pour les étudiants de MIAIF2, DESS, MASS, MST2. POLYCOPIE DE JAVA 1. Introduction Ce document doit, à terme, être un polycopié Java pour les étudiants de MIAIF2, DESS, MASS, MST2. Plan du cours 2. Présentation générale 3. Le minimum sur les entrées

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

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

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

Programmation Orientée Objet en Java

Programmation Orientée Objet en Java Programmation Orientée Objet en Java Licence Fondamentale SMI S5 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma

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

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

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

Utilisation d une dll dans un ActiveX

Utilisation d une dll dans un ActiveX Utilisation d une dll dans un ActiveX Auteur : Philippe Lacomme et Raksmey Phan. But : Ce tutorial a pour but de vous aider à intégrer dans un projet ActiveX existant une dll créée dans un autre projet.

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

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

Chapitre 2 : Références, tableaux, pointeurs, allocation dynamique de mémoire

Chapitre 2 : Références, tableaux, pointeurs, allocation dynamique de mémoire Université Pierre et Marie Curie Programmation en C++ Master M2 "IFMA" R. Roux, F. Benaych-Georges & D. Simon Chapitre 2 : Références, tableaux, pointeurs, allocation dynamique de mémoire Table des matières

Plus en détail

ESIEE Paris L. Buzer et B. Perret Oct 2011 v1.11. PROGRAMMATION OBJET AVANCEE & LANGAGE C# Résumé de cours

ESIEE Paris L. Buzer et B. Perret Oct 2011 v1.11. PROGRAMMATION OBJET AVANCEE & LANGAGE C# Résumé de cours PROGRAMMATION OBJET AVANCEE & LANGAGE C# Résumé de cours Héritage & Polymorphisme 0. Objectifs Comprendre les principes de l héritage Comprendre le polymorphisme d héritage Comprendre le chainage des constructeurs

Plus en détail

Université de Montpellier / Faculté Des Sciences. Objets Avancés - Partie C++ HLIN 603 Marianne Huchard

Université de Montpellier / Faculté Des Sciences. Objets Avancés - Partie C++ HLIN 603 Marianne Huchard Université de Montpellier / Faculté Des Sciences Objets Avancés - Partie C++ HLIN 603 Marianne Huchard 15 janvier 2015 Table des matières 1 Introduction 4 1.1 L approche par objets..............................

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

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

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

Introduction à Qt (Prononcer «cute»)

Introduction à Qt (Prononcer «cute») Introduction à Qt (Prononcer «cute») I. INSTALLATION... 3 1. SOUS WINDOWS... 3 Avec Visual Studio 2013... 4 2. SOUS MAC OSX... 7 II. RAPIDE PRESENTATION DE QT CREATOR ET ASTUCES... 8 1. INTERFACE ET BARRES

Plus en détail

Le langage C++ (partie I)

Le langage C++ (partie I) Master Informatique des Organisations 1 ère et 2 ème années Spécialité ID/MIAGE-IF/MIAGE-SITN Le langage C++ (partie I) Maude Manouvrier Qu est ce que le C++? Rappels sur la gestion de la mémoire Premiers

Plus en détail

Programmation De techniques d I3D. Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr

Programmation De techniques d I3D. Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr Programmation De techniques d I3D Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr Architecture générale d un système d I3D classique [Otmane, 2010] - 3 couches logicielles interconnectées

Plus en détail

Apprendre. Java et C++ en parallèle 3 e édition. Jean-Bernard Boichat. Groupe Eyrolles, 2003, ISBN : 2-212-11327-7

Apprendre. Java et C++ en parallèle 3 e édition. Jean-Bernard Boichat. Groupe Eyrolles, 2003, ISBN : 2-212-11327-7 Apprendre Java et C++ en parallèle 3 e édition Jean-Bernard Boichat Groupe Eyrolles, 2003, ISBN : 2-212-11327-7 1 L incontournable Hello world Nous le retrouvons dans presque tous les ouvrages de programmation.

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

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes 2.5- Les flux 1- Librairies de flux 2- Manipulation de cin 3- Lecture et écriture de fichiers 4- Les flux et les chaînes 5- Passage de paramètres en ligne de commande 6- Un exemple de récupération CSV

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

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Formation C++ avancée

Formation C++ avancée Formation C++ avancée ou comment être les stars du C++ Raffi Enficiaud INRIA 16-18 février 2009 INRIA - IMEDIA Formation C++ avancée Organisation générale Enficiaud (INRIA) C++ 16-18/02/2009 2 / 201 À

Plus en détail

Informatique, Algorithmique, Programmation, etc. CPEL2

Informatique, Algorithmique, Programmation, etc. CPEL2 Informatique, Algorithmique, Programmation, etc. CPEL2 1 Informatique? Mot valise créé en 1962: INFORMATION + AUTOMATIQUE En français moderne: science du traitement de l'information par un ordinateur 2

Plus en détail

Projet console Visual C++ 2010 avec OpenCV

Projet console Visual C++ 2010 avec OpenCV Table des matières Projet console Visual C++ 2010 avec OpenCV...2 Pré-requis...2 Création du projet...2 Configuration des options dans Visual Studio...3 Le squelette de base du programme OpenCV...4 Projet

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

PG208, Projet n 1 : Gestion d une bibliothèque

PG208, Projet n 1 : Gestion d une bibliothèque PG208, Projet n 1 : Gestion d une bibliothèque Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L

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

Chapitre 5. La surcharge des opérateurs

Chapitre 5. La surcharge des opérateurs Chapitre 5 : La surcharge des opérateurs 89 Chapitre 5 La surcharge des opérateurs Chapitre 5 : La surcharge des opérateurs 90 1. Généralités - En langage C, l'opérateur division «/» est défini comme suit:

Plus en détail

Objectifs de ce cours. Introduction au langage C - Cours 4. Procédures. Exemple de procédure. Analyse de problème.

Objectifs de ce cours. Introduction au langage C - Cours 4. Procédures. Exemple de procédure. Analyse de problème. 1/30 Objectif de ce cours 2/30 Objectifs de ce cours Introduction au langage C - Cours 4 Girardot/Roelens Septembre 2013 Analyse de problème I décomposer un traitement complexe en traitements simples Concepts

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

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

Type Asbtrait de Données

Type Asbtrait de Données De l analyse au développement Type Abstrait de Données (TAD) Les TAD de be Exemples Règles Conclusion Type Asbtrait de Données Nicol Delestre TAD - v3.0 1 / 52 De l analyse au développement Type Abstrait

Plus en détail

Introduction à la Programmation Orientée Objet et au C++ Concepts et exemples. Christophe Collard

Introduction à la Programmation Orientée Objet et au C++ Concepts et exemples. Christophe Collard Introduction à la Programmation Orientée Objet et au C++ Concepts et exemples Plan Notions de programmation de base Classes et Objets Les fonctions amies La surdéfinition d op ateu s Les patrons de fonctions

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

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT;

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT; MODULE TransportsAbstrait; TYPE Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

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

Conception et Programmation Orientées Objet

Conception et Programmation Orientées Objet Conception et Programmation Orientées Objet 1-Introduction générale Emmanuel Hyon Université Paris Ouest Nanterre UFR SEGMI - L2 MIA - 2010/2011 7 février 2011 1 / 81 Sommaire 1 Avant-propos 2 Conception

Plus en détail

X. Juvigny. Septembre 2007

X. Juvigny. Septembre 2007 De C à C++ X Juvigny Septembre 2007 1 Introduction Outre les nouvelles possibilités en programmation orienté objet, le C++ offre de plus de nouvelles caractéristiques par rapport au langage C dont il est

Plus en détail

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END;

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END; MODULE TransportsAbstrait; Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

Plus en détail

Structure et éléments du C++ Algorithmique et Programmation Unisciel/K.Zampieri

Structure et éléments du C++ Algorithmique et Programmation Unisciel/K.Zampieri Structure et éléments du C++ Algorithmique et Programmation Unisciel/K.Zampieri 1 Liminaire 2 Le langage C Historique : Développé dans les laboratoires d'at&t Bell Début des années 1970 Par Dennis Ritchie

Plus en détail

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

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2014-2015 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 8 pages

Plus en détail

La programmation modulaire et les fonctions

La programmation modulaire et les fonctions Chapitre 6 La programmation modulaire et les fonctions Comme tous les langages, C permet de découper un programme en plusieurs parties nommées souvent «modules». Cette programmation dite modulaire se justifie

Plus en détail

DLL. Master 2 IF App. LEPSiS, INRETS/LCPC saunier@inrets.fr http://www.lamsade.dauphine.fr/~saunier. Julien Saunier

DLL. Master 2 IF App. LEPSiS, INRETS/LCPC saunier@inrets.fr http://www.lamsade.dauphine.fr/~saunier. Julien Saunier DLL Master 2 IF App Julien Saunier LEPSiS, INRETS/LCPC saunier@inrets.fr http://www.lamsade.dauphine.fr/~saunier Dlls: Qu'est-ce? Objectifs Vue d'ensemble C/C++/C# Comment les utiliser depuis VBA/Excel?

Plus en détail

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Benjamin FAUCHER Cubis-Helios Consulting Cours 1 : Les bases du Langage Java 1/2 I. Introduction II. Compilation III. Rappel sur la POO IV. Les classes Java V. Syntaxe de base du Java Langage

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Algorithmique IN102 TD 3

Algorithmique IN102 TD 3 Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail