Programmation Orientée Objet C++ Cours 1

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Programmation Orientée Objet C++ Cours 1"

Transcription

1 Programmation Orientée Objet C++ Cours 1 P. Pesneau Université Bordeaux 1 Bât A33 - Bur 265

2 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme ANSI. Editions Dunod, C. Delannoy - Programmer en langage C : Cours et exercices corrigés. Editions Eyrolles, B. Stroustrup - Le langage C++. Editions Pearson Education, C. Delannoy - Programmer en langage C++. Editions Eyrolles, 2011.

3 Sommaire La Programmation Orientée Objet 1 La Programmation Orientée Objet 2

4 Problématique de la programmation Concevoir des logiciels avec des exigences de qualité : Exactitude : aptitude d un logiciel à fournir les résultats voulus dans des conditions normales d utilisation. Robustesse : aptitude à bien réagir quand on s écarte des conditions normales d utilisation. Extensibilité : facilité avec laquelle un programme pourra être adapté pour satisfaire à l évolution de la demande. Réutilisabilité : possibilité d utiliser certaines parties du logiciel pour résoudre d autres problèmes. Portabilité : facilité avec laquelle on peut exploiter un même logiciel dans différentes implémentations. Efficience : temps d exécution, taille mémoire...

5 Programmation structurée Repose sur l équation de Writh : Algorithmes + Structures de données = Programmes Les algorithmes étant dissociés des données, il est nécessaire d établir le lien entre eux lors de la conception du programme. La modification du logiciel par la remise en cause de l un des éléments nécessite souvent la remise en cause de l ensemble des éléments.

6 Programmation Orientée Objet Repose sur le concept d objet qui est une association de données et de procédures (ou méthodes) agissant sur ces données : Méthodes + Données = Objet Un programme est alors constitué d un ensemble d objets communiquant par des requêtes (ou messages). La POO permet une modélisation plus naturelle des systèmes considérés. et propose un ensemble de concepts indépendants de tout langage de programmation facilitant le représentations des objets : du monde réel (personne, voiture,...). d un domaine particulier (vecteur, matrice, complexe,...)

7 Concept objet Un objet est caraxtérisé par un état : ensemble de valeurs, les données. un comportement : ensemble d opérations réalisables. Ex : un véhicule Un objet : connaît ses caractéristiques. sait comment effectuer les opérations qui le concernent. réagit à des messages lui demandant d effectuer un certain traitement.

8 Concept de classe C est une généralisation de la notion de type. C est la description d un ensemble d objet ayant une structure de données commune et disposant des même méthodes. Une classe décrit le domaine de définition d un ensemble d objets. Chaque objet est une instance d une classe (mécanisme d instanciation). Une classe est décrite par : Le type des données représentées (déclaration des attributs). Le prototype (ou interface) des méthodes accedant aux attributs. La réalisation (ou définition) des méthodes.

9 Autres concepts de la POO Modularité : décomposition d un système en modules cohérents et faiblement couplés (notions de classes et d objets) Abstraction des données : ignorer les détails pour ne conserver qu une notion générale. Encapsulation des données : on n agit pas directement sur les données d un objet. On interagit par l intermédiaire de ses méthodes. Cela facilite la maintenance et la réutilisation. Héritage : permet de définir une nouvelle classe à partir d une classe existante à laquelle on ajoute de nouvelles données et méthodes. (Spécialisation et réutilisation.) Polymorphisme : donner plusieurs formes à une même classe d objets en fonction des données.

10 Le C++ La Programmation Orientée Objet Sur-ensemble du langage C offrant les possibilités de la POO. Ce n est pas un langage de POO pure. C++ = C ± E + S + P avec : C : le C norme ANSI. E : les écarts de C++ avec la norme ANSI. S : les spécificités du C++ qui ne sont pas de la POO. P : les possibilités de la POO. Structuration d un programme : déclaration des classes dans des fichiers.hpp (de préférence un fichier par classe). réalisation des méthodes de classes dans des fichiers.cpp (de préférence un par classe). implémentation du programme principal dans un fichier.cpp.

11 Sommaire La Programmation Orientée Objet 1 La Programmation Orientée Objet 2

12 Introduction Elles généralisent les structures en C. Elles constituent un modèle ou type abstrait permettant de déclarer des instances (objets) ayant les caractéristiques de la classe. Une classe contient : des données-membres ou attributs. des fonctions-membres ou méthodes. Chaque membre se voit définir un droit d accès par l un des mots-clés public, private ou protected. Seuls les membres publics sont accessible de l extérieur de la classe. Ceci renforce l encapsulation des données. Les membres publics constituent l interface pour l utilisateur.

13 Avantages Seule l interface a besoin d être considérée par l utilisateur. Les détails techniques d implémentation sont dissimulés dans les réalisations des méthodes. C est le principe d abstraction. Le programme utilisateur ne peut pas accéder directement aux membres privés ou protégés d un objet. Ce sont les principes de masquage de l information et d encapsulation des données. Il est possible de modifier l implémentation d une méthode sans répercution sur le texte des programmes utilisateurs (à condition de respecter la même interface). C est le principe de séparation de l interface er de la réalisation. Il facilite l évolutivité d un logiciel.

14 Squelette d une classe class Nom_class { private: // Déclaration des attributs // et méthodes privés protected: // Déclaration des attributs // et méthodes protégés public: // Déclaration des attributs // et méthodes publics };

15 Exemple : la classe Point Fichier Point.hpp : class Point { private: }; int coord_x; int coord_y; public: void SetCoord(const int & x, const int & y); void Deplacer(const int & dx, const int & dy); void Afficher() const;

16 Les constructeurs Avant de pouvoir être utilisé, un objet doit être construit. Cette opération est effectuée par des méthodes spécifiques : les constructeurs. On peut en avoir plusieurs pour une même classe. Ils portent toujours le nom de la classe. Ils ne retournent aucun résultat, pas même void. Si aucun constructeur n est déclaré, un constructeur par défaut, sans paramètres, est automatiquement créé. Ce constructeur fera appel aux constructeurs par défaut des attributs qui composent l objet. Le constructeur de copie est un constructeur qui prend en paramètre un objet de la même classe et qui construit une copie de cet objet. Si le constructeur de copie n est pas déclaré, un constructeur de copie par défaut est créé qui fera appel au constructeur de copie de chacun des attributs qui composent l objet.

17 Exemple : la classe Point Fichier Point.hpp : class Point { private: }; int coord_x; int coord_y; public: Point(); Point(const in & x, const int & y); Point(const Point & p); void SetCoord(const int & x, const int & y); void Deplacer(const int & dx, const int & dy); void Afficher() const;

18 Le destructeur Lorsqu un objet devient inutile, il doit être détruit. Cette opération est réalisée par le destructeur. Caractéristiques : Il est unique. Son nom est le nom de la classe précédé par un. Il n a pas de paramètre. Il ne retourne aucun résultat, pas même void. Il doit restituer la place mémoire allouée dynamiquement par l objet. Un destructeur n est jamais appelé explicitement. Il est exécuté automatiquement lorsqu un objet atteint la fin de la portée de sa déclaration, ou comme conséquence d un ordre delete.

19 Exemple : la classe Point Fichier Point.hpp : class Point { private: }; int coord_x; int coord_y; public: Point(); Point(const in & x, const int & y); Point(const Point & p); ~Point(); void SetCoord(const int & x, const int & y); void Deplacer(const int & dx, const int & dy); void Afficher() const;

20 Utilisation des objets #include "Point.hpp" int main(){ Point p1; Point p2(5,3); Point p3(p1); Point p4 = p2; p2.afficher(); p1.setcoord(7,2); // Constructeur par defaut // Constructeur avec parametre // Constructeur de copie // Constructeur de copie // Affiche le point p2 // Modifie les coordonnées de p1 Point * pt1; // Déclaration d un pointeur sur un Point pt1 = new Point; // Allocation dynamique - Const. par defaut Point * pt2; // Déclaration d un pointeur sur un Point pt2 = new Point(3,1) // Allocation dynamique - Const. avec param (*pt1).afficher() pt1->afficher() delete pt1; delete pt2; // Affiche le point pointe par pt1; // Idem instruction precedente // Appel destructeur pour *pt1 // Appel destructeur pour *pt2 return 0; } // Appel destructeur pour p1, p2, p3 et p4

21 Réalisation des fonctions-membres On écrit généralement les fonctions-membres en dehors de la classe dans un fichier.cpp. On utilise alors l opérateur :: de réalisation de domaine pour préfixer le nom de la classe au nom de la méthode. A l intérieur de la fonction-membre, on travaille toujours par défaut sur l instance acteur courante (celui-ci correspond à l objet sur lequel on a appelé la méthode). Les membres (attributs et méthodes) de cet objet sont accessibles directement par leur nom, sans préfixe. Les membres des autres objets de la même classe, sont accessible par la notation pointée. Toute fonction-membre possède un argument implicite noté this qui est un pointeur sur l instance acteur courante.

22 Exemple : la classe Point Fichier Point.cpp : #include "Point.hpp" Point::Point(){ coord_x = 0; coord_y = 0; } Point::Point(const in & x, const int & y): coord_x(x),coord_y(y){ } Point::Point(const Point & p){ coord_x = p.coord_x; coord_y = p.coord_y; } Point::~Point(){} void Point::SetCoord(const int & x, const int & y){ coord_x = x; coord_y = y; } void Point::Deplacer(const int & dx, const int & dy){ coord_x += dx; // coord_x = coord_x + dx; coord_y += dy; // coord_y = coord_y + dy; } void Point::Afficher(){ cout << "x = " << coord_x << " y = " << coord_y << endl; }

LO43 : Bases fondamentales de la programmation orientée objet

LO43 : Bases fondamentales de la programmation orientée objet LO43 : Bases fondamentales de la programmation orientée objet Langage C++ Franck GECHTER franck.gechter@utbm.fr Template La Conception Orientée Objet, Liaison Statique et Liaison Dynamique Template La

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

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

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

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

4/ Introduction à la Programmation Objet avec le langage C++

4/ Introduction à la Programmation Objet avec le langage C++ Cours programmation - Marc Jachym Licence professionnelle Métrologie dimensionnelle et qualité IUT de St Denis, Université Paris 13 4/ Introduction à la Programmation Objet avec le langage C++ 4.1/ La

Plus en détail

Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976. IFT-19946 Programmation orientée objet. Examen partiel # 1

Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976. IFT-19946 Programmation orientée objet. Examen partiel # 1 Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976 Date : 22 octobre 2001 IFT-19946 Programmation orientée objet Examen partiel # 1 Question # 1. (2 points) Pour développer

Plus en détail

LIAISON DYNAMIQUE (1)

LIAISON DYNAMIQUE (1) LIAISON DYNAMIQUE (1) Problème : avec un pointeur de base (Employe *), on aurait besoin que la «bonne» méthode soit exécutée, en fonction du type dynamique de l objet pointé. Comment savoir quel est le

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

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

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

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

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

Programmation Objet. Cours 1

Programmation Objet. Cours 1 Programmation Objet. Cours 1 Marie-Pierre Béal UPEM DUT 1 Programmation objet. Classes et objets. Principaux styles de programmation Style impératif Fondé sur l exécution d instructions modifiant l état

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

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

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

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Initialisation des attributs (1)

Initialisation des attributs (1) Initialisation des attributs (1) Initialiser les attributs d une instance en leur affectant individuellement une valeur, après l instanciation, n est pas une technique satisfaisante: a) elle est fastidieuse,

Plus en détail

Programmation Orientée Objet - Licence TIS CM2/9

Programmation Orientée Objet - Licence TIS CM2/9 Programmation Orientée Objet - Licence TIS CM2/9 Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.fr Poitiers, le 13/01/2006 1 2 3 4 5 Rappel sur la séance précédente La fois précédente, nous avons

Plus en détail

Le langage C++ Henri Garreta

Le langage C++ Henri Garreta Faculté des Sciences de Luminy Département d Informatique Le langage C++ Henri Garreta Table des matières 1 Eléments préalables 3 1.1 Placement des déclarations de variables................................

Plus en détail

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Fiche n 12 : classes et objets (initiation au C++)

Fiche n 12 : classes et objets (initiation au C++) Fiche n 12 : classes et objets (initiation au C++) Nous entrons maintenant dans l'univers de la programmation objet et de C++. Une classe peut être vue comme une évolution d'une structure qui comporte

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

Principes de la Programmation Objets

Principes de la Programmation Objets Principes de la Programmation Objets 1. La programmation procédurale La programmation procédurale (C, Pascal, Basic, ) est constituée d une suite d instructions (souvent réunies en fonctions) exécutées

Plus en détail

LE LANGAGE C++ TODO : - Flux d entrées/sorties - 5.1.4 : déclaration d accès (à revoir)

LE LANGAGE C++ TODO : - Flux d entrées/sorties - 5.1.4 : déclaration d accès (à revoir) LE LANGAGE C++ TODO : - Flux d entrées/sorties - 5.1.4 : déclaration d accès (à revoir) v1.5.4.3 14/02/2014 peignotc(at)arqendra(dot)net / peignotc(at)gmail(dot)com Toute reproduction partielle ou intégrale

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

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Cours Informatique II (SV) Jamila Sam ÉC

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

Cours de base d Ingéniérie des applications objet. Introduction

Cours de base d Ingéniérie des applications objet. Introduction 1 IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE1 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II Contenu du cours - concepts

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

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

3 PHP avancé Les objets : définitions

3 PHP avancé Les objets : définitions Les objets : définitions Structure de données associant des attributs et des méthodes qui décrivent le comportement de l'objet. Héritage de la conception objet (UML). Définie dans une classe. Un objet

Plus en détail

PHP5. Programmation orientée objet. A. Belaïd 1

PHP5. Programmation orientée objet. A. Belaïd 1 PHP5 Programmation orientée objet A. Belaïd 1 La POO en PHP Intérêt Progrès par rapport à la version PHP4 Permet de rassembler autour d un même objet (concept), une définition, des attributs et des méthodes

Plus en détail

Analyse, Conception Objet. Diagrammes de classes. Sommaire. Utilisation

Analyse, Conception Objet. Diagrammes de classes. Sommaire. Utilisation Analyse, Conception Objet Sommaire Diagrammes de Classes Une partie du matériau de ce cours est issue du cours de S.Galland (Stephane.Galland@emse.fr) Septembre 2003 Définition Paquetages Classe Association

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

Notion d indirection (1) 1

Notion d indirection (1) 1 Notion d indirection (1) 1 Illustration 1: Pourquoi garder une copie des fichiers postscript du cours dans mon répertoire, si je sais où se trouve l original sur le web? pour accéder à l original au cas

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 7 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Facult e des Sciences - Univ. Artois Janvier 2011 Exceptions

Plus en détail

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Construction et destruction des objets Durée de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Initialisation des objets Constructeur par recopieinit

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

Simulation Numérique

Simulation Numérique Ecole Nationale de Techniques Avancées Simulation Numérique Chapitre 4 Surcharge des opérateurs Eric Lunéville Surcharge des opérateurs Le C++ utilise des opérateurs prédéfinis tels que + - * / sur les

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Cours SI6. Python POO par l exemple

Cours SI6. Python POO par l exemple Cours SI6 Python POO par l exemple Objet créé à partir d un moule Moule -> une classe Objet = instance d une classe Classe= Structure -> attributs Comportement -> méthodes Principe de base : Instanciation

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

Programmation scientifique orientée objet

Programmation scientifique orientée objet UML, C++, make, gnuplot Université du Havre Master MI 1 ère année Octobre 2009 Sommaire Introduction 1 Présentation Contexte, objectifs et enjeux Modèles Simulation Exemple UML 2 UML Introduction Définition

Plus en détail

Programmation Orientée Objet C++ Cours 3

Programmation Orientée Objet C++ Cours 3 Programmation Orientée Objet C++ Cours 3 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Sommaire Héritage 1 Héritage Héritage C est un fondement de la programmation

Plus en détail

PARADIGME ORIENTÉ-OBJET

PARADIGME ORIENTÉ-OBJET PARADIGME ORIENTÉ-OBJET A programming paradigm that uses objects to design systems. Sébastien Adam Une introduction des concepts de base 2 Principes fondamentaux Modularité : vise à répartir les opérations

Plus en détail

Descriptif de module. Page Denis Prêtre. 10 septembre 2015

Descriptif de module. Page Denis Prêtre. 10 septembre 2015 RS430.100.15. 1/7 La description de module définit les conditions cadres du déroulement de l enseignement des matières du module. Filière(s) Informatique (INF) Option - Public Plein temps s Niveau d études

Plus en détail

Reprise en main du programme d Affectation de transport en commun

Reprise en main du programme d Affectation de transport en commun Reprise en main du programme d Affectation de transport en commun Modifications indispensables pour bonne compilation : Utilisation de visual C++ express pour avoir accès à un débuggeur et un compilateur

Plus en détail

A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T

A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T RAPPORT DE PROJET LOGICIEL DE GESTION DE COMPAGNIE DE TRANSPORT MARITIME CE LI NE HE NRY CO MB ES P IERRE LUCE L3 IN

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

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

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

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

ISBN : 2-212-11407-9

ISBN : 2-212-11407-9 Groupe Eyrolles, 2005, ISBN : 2-212-11407-9 Table des matières Avant-propos................................................ XV CHAPITRE 1 Introduction..................................................

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées Les concepts de base de la POO Application en C++ Classes abstraites Possibilité de définir de nouveaux objets à partir des objets existants Hiérarchie de généralisation/ spécialisation Une classe descendante

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

Entrée et sortie standards (stdin,stdout et cin,cout)

Entrée et sortie standards (stdin,stdout et cin,cout) Chapitre 4 Entrée et sortie standards (stdin,stdout et cin,cout) Pour réaliser les opérations élémentaires d écriture sur l écran ou de lecture des informations du clavier, le C utilise un ensemble de

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Épisode IV. Le langage C++ objet

Épisode IV. Le langage C++ objet Épisode IV Le langage C++ objet Conception et Programmation OO OO4.tex v1.1 imprimé le 23 Octobre 2006 page 1/70 C++ objet : Objet / Classe Un objet (au sens de l orienté objet) est un espace mémoire associant

Plus en détail

ENSTA IN204 Introduction à JAVA

ENSTA IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Ce document est mis à

Plus en détail

Le langage UML 2.0 Diagramme de Déploiement

Le langage UML 2.0 Diagramme de Déploiement Claude Belleil Université de Nantes Le langage UML 2.0 Diagramme de Déploiement 1 Introduction Le diagramme de déploiement spécifie un ensemble de constructions qui peuvent être utilisées pour définir

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

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

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

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 2013-2014 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 12 pages

Plus en détail

//////////////////////////////////////////////////////////////////// Programmation

//////////////////////////////////////////////////////////////////// Programmation ////////////////////// Programmation / INTRODUCTION Programmation La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Cours Programmation ObjetS en PHP. Ph. Declerck

Cours Programmation ObjetS en PHP. Ph. Declerck Cours Programmation ObjetS en PHP Ph. Declerck 1.Généralités a. Motivation Terminologie Classe : modèle d'objets composé de données (attributs, propriétés) et de fonctions (méthodes) Objet : une instance

Plus en détail

Introduction à l héritage en C++

Introduction à l héritage en C++ Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition

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

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

1 Pointeurs, références, alias et tableaux

1 Pointeurs, références, alias et tableaux 1 Pointeurs, références, alias et tableaux 1 1.1 Définitions Un pointeur est une variable contenant l'adresse d'un objet en mémoire. Un pointeur est déni par le couple (type, adresse) de l'objet pointé.

Plus en détail

ENSTA : cours IN204 Introduction à JAVA

ENSTA : cours IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA : cours IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Page : 1 Plan

Plus en détail

Apprendre à programmer

Apprendre à programmer Christophe Dabancourt Apprendre à programmer Algorithmes et conception objet 2 e édition Groupe Eyrolles, 2008, ISBN : 978-2-212-12350-0 Table des matières Avant-propos.................................................

Plus en détail

Introduction au langage Ada

Introduction au langage Ada Séance 2 Introduction au langage Ada Objectifs : Pourquoi Ada? Évolution des langages de programmation Particularités d'ada Structure d un programme Ada. 2008 Ingénierie du logiciel avec Ada N.KERZAZI

Plus en détail

I. Introduction à MATLAB

I. Introduction à MATLAB 1. Introduction Le nom MATLAB est la contraction du terme anglais matrix laboratory [1]. Ce logiciel est spécialement conçu pour le calcul scientifique et la manipulation de vecteurs et de matrices. Le

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

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

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

Petit résumé pour IFT1166

Petit résumé pour IFT1166 Petit résumé pour IFT1166 C est un langage populaire (cours IFT 1810, IFT 1160). JAVA (IFT 1870, IFT 1170, IFT 1176) utilise surtout la syntaxe du C++. De plus, Java est un langage purement orienté objet.

Plus en détail

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J.

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Génie Logiciel I Cours III - Conversion, opérateurs et exceptions Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Nicolas Kielbasiewicz (C.D.C.S.P./I.S.T.I.L./I.C.J.)

Plus en détail

Développement Orienté Aspect et Optimisation

Développement Orienté Aspect et Optimisation Développement Orienté Aspect et Optimisation Pierre Schweitzer Mardi 4 Juin 2013 LIMOS UMR CNRS 6158 Clermont Université - Université Blaise Pascal LPC UMR CNRS 6533 Clermont Université - Université Blaise

Plus en détail

Janvier 2015. Licence 3 info Université de Lille 1. Vers C++ venant de C et de Java. Adrien Poteaux et Alexandre Sedoglavic.

Janvier 2015. Licence 3 info Université de Lille 1. Vers C++ venant de C et de Java. Adrien Poteaux et Alexandre Sedoglavic. Vers C++ venant Licence 3 info Université de Lille 1 Janvier 2015 Généralités Le C++ est un langage de programmation développé à partir de 1980 par Bjarne Stroustrup. Nous utiliserons la normalisation

Plus en détail

Catégories, extensions et sécurité

Catégories, extensions et sécurité 11 Catégories, extensions et sécurité Au sommaire de ce chapitre Catégories Extensions Contrôle des accès aux variables d instance Contrôle des accès aux méthodes Espaces de noms Sécurité Appeler des fonctions

Plus en détail

Modélisation orientée objets avec UML

Modélisation orientée objets avec UML Modélisation orientée objets avec UML Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) UML 2007 1 / 70 Plan du cours 1 Introduction 2 Vue fonctionnelle 3 Vue statique 4 Vue dynamique 5 Démarche de modélisation

Plus en détail

Cours du Master PISE. Jean-Baptiste.Yunes@univ-paris-diderot.fr http://www.liafa.univ-paris-diderot.fr/~yunes/ 2015

Cours du Master PISE. Jean-Baptiste.Yunes@univ-paris-diderot.fr http://www.liafa.univ-paris-diderot.fr/~yunes/ 2015 Cours du Master PISE Jean-Baptiste.Yunes@univ-paris-diderot.fr http://www.liafa.univ-paris-diderot.fr/~yunes/ 2015 1 UML? Un langage de modélisation simple qui limite les ambiguïtés indépendant des langages

Plus en détail

Informatique PLAN DE COURS. Programmation structurée 420-414-GR 1-3-2. Hiver 2011

Informatique PLAN DE COURS. Programmation structurée 420-414-GR 1-3-2. Hiver 2011 Informatique PLAN DE COURS Programmation structurée 420-414-GR 1-3-2 Hiver 2011 Jie Yang Bureau : A-312 Téléphone : 372-6614 ext. 1525 jyang@cegepgranby.qc.ca www.cegepgranby.qc.ca PRÉSENTATION Ce cours

Plus en détail

Une courte introduction à C++ Karl Tombre École des Mines de Nancy

Une courte introduction à C++ Karl Tombre École des Mines de Nancy Une courte introduction à C++ Karl Tombre École des Mines de Nancy Version 1.0 Octobre 1999 1 Un peu d histoire Le langage C++ a deux grands ancêtres : Simula, dont la première version a été conçue en

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Etude comparative des mécanismes d'héritage dans les langages C#, C++, Eiffel et Java

Etude comparative des mécanismes d'héritage dans les langages C#, C++, Eiffel et Java Etude comparative des mécanismes d'héritage dans les langages C#, C++, Eiffel et Java BOUCHEREZ Kévin SAUSSIER Pascal 16/06/2003 1 A quoi sert l héritage? L héritage permet de modéliser de manière simple

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