De Java (et C) à C++

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "De Java (et C) à C++"

Transcription

1 De Java (et C) à C++

2 Historique Syntaxe basée sur le langage C Bjarne Stroustrup 1979 : C with classes 1983 : renommé C : The C++ Programming Language, première édition 1998 : premier standard 2003 : nouveau standard 2011? : prochain standard

3 Ce que C++ hérite du C Types de base : int, double, float, char Arithmétique de base : +, -, *, /, %, Tests et boucles : if (condition) { insts; } else { insts; } for (int i=0; i<n; i++) { insts;} while (condition) {insts;} do {insts;} while(condition); Pointeurs et tableaux : char v[10]; int *i;

4 Langage orienté objets Classes, héritage, généricité, polymorphisme,... Pas de garbage collector! Objets références Collections : STL (Standard Template Library)

5 Exemple simple Fichier Point.h : class Point { private: double x,y; public: Point(); Point(double _x, double _y); Point(const Point & p); // constructeur par recopie ~Point(); // destructeur void set_x(double _x); double get_x() const; }

6 Exemple simple Fichier Point.cpp : #include Point.h Point::Point(): x(0), y(0) {} Point::Point(double _x, double _y): x(_x), y(_y) {} Point::Point(const Point & p): x(p.x), y(p.y) {} Point::~Point() {} // Destructeur : rien à faire void Point::set_x(double x) { this->x=x; } double Point::get_x() const { return x; }

7 Eléments de syntaxe Liste d'initialisation d'un constructeur : Point() : x(0),y(0) { } Méthodes constantes : ne modifient pas les attributs de la classe class Point { int x, y; public: int getx() const { return x; } };

8 Const Spécifier des paramètres/résultats/méthodes constantes => améliore grandement les performances Attention au placement du const! char toto(point& p) const {... } // Méthode constante const char toto(point& p) {... } // Résultat constant char toto(const Point& p) {... } // Paramètre constant Voir plus loin

9 Fichier Point.cpp : #include Point.h Exemple d utilisation int main(int argc, char * argv []) { Point p1(3,5); // objet alloué sur la pile, appel au //constructeur (3,5) Point p2; // objet alloué sur la pile (0,0) Point p3 = p1; // objet alloué sur la pile (3,5), appel // au copie-constructeur Point * p3 = new Point(p1); // objet alloué sur le tas double x_p2 = p2.get_x(); p3->set_x(4); /*...*/ delete p3; // appel au destructeur /* appel implicite au destructeur pour les objets sur la pile */ }

10 Gestion de la mémoire 2 nouveaux opérateurs de gestion de la mémoire : new type : allocation d'un objet unique new type[n] : allocation d'un tableau de taille n delete adresse : libération d'un objet unique delete [] adresse : libération d'un tableau Pas de malloc, allocation dynamique Pas de garbage collector => attention aux fuites de mémoire!

11 int* pi = new int; // Au lieu de : // int *pi = (int *) malloc(sizeof(int)); float* color = new float[3]; delete pi; // Au lieu de : free(pi); delete [] color; Exemple

12 Destructeur Rôle : libérer la mémoire! (inverse constructeur) Appelé automatiquement à la fin de la portée d un objet (fermeture d'accolade } ) alloué sur la pile Appelé explicitement lors du delete pour un objet sur le tas Par défaut un destructeur vide est implémenté Un seul destructeur par classe

13 Exemple class Tableau { }; int *_t; public: Tableau(int s = 10) { _t = new int[s]; } ~Tableau() { delete [] _t; } { Tableau T; } // Destructeur ~Tableau() appelé automatiquement // en fin de portée

14 Référence & (ampersand) = alias sur une variable ou un objet Exemple : int a = 5; int &b = a; // b est une référence sur a b = 6; // Modifie aussi a : a <- 6; Principale utilisation : passage de paramètres void toto(int &i); // i ~ paramètre in-out void toto(point & p) { double x = p.get_x();...}

15 Passage de paramètres void f(point p); // Copie locale de p => non modifié globalement void f(point* p); // p est un pointeur, la valeur pointée peut être modifiée void f(point& p); // alias sur p : p peut être modifié dans la fonction void f(const Point* p); // Contenu constant : *p =...; interdit void f(point* const p); // Adresse constante : p++; interdit void f(const Point* const p); // Contenu et adresse constants void f(const Point& p); // Référence constante sur p

16 Question de goût! void f(point* p) {... } // p peut être nul Passage par pointeur ou par référence void g(point& p) {... } // p pointe sur (référence) qqch int main(int argc, char** argv) { } Point p; Point q;... f(&p); g(p); return 0;

17 Référence : pièges Une référence doit être initialisée int &b; // Interdit Ré-affectation impossible int a = 5; int b = 6; int &ref = a; ref = b; // ref reste une référence sur a, et a <- 6 Initialisation avec un temporaire interdit si référence non constante Point & ref = Point(); // Interdit const Point & ref = Point(); // OK

18 Entrées/sorties Soit printf, scanf, soit utilisation des flux #include <iostream> Entrée clavier : int i; std::cin >> i; // Lit un entier Sortie à l'écran : int i = 2; std::cout << "i : " << i << std::endl; Flux d'erreur : std::cerr << "erreur!" << std::endl;

19 Entrées/sorties fichiers Exemple : ifstream f("infile"); // Ouverture en lecture ofstream g("outfile"); // Ouverture en écriture fstream h("filename",ios::in ios::out); //Ouverture en lecture et écriture char buf[81]; f.getline(buf, 80); // Lit une ligne while (f) { g << buf << std::endl; // Envoie dans g f.getline(buf,80); // Lit la ligne suivante }

20 Espace de nommage Équivalent du paquetage Java Défini à l aide du mot-clé namespace Intérêt : éviter les conflits de noms entre plusieurs modules namespace pile_de_char { void empiler(char); char depiler(); } namespace pile_de_int { void empiler(int); int depiler(); }

21 Utilisation Exemple : void main(){ pile_de_char::empiler( x ); if (pile_de_char::depiler()!= x ) std::cerr << "impossible" << std::endl; } Mot-clé using : introduit l'identificateur dans la région déclarative courante : using pile_de_char::empiler(char); => empiler('x'); Grand classique : using std; ou using namespace std;

22 Extension de fonctions Surcharge : sur la liste des paramètres int puissance(int x, int n){ //calcule x n = x.x x } double puissance(int x, double n){ //calcule x n = e n log x } Arguments par défaut : int ajouter(int a, int b=1) { return a+b; } ajouter(2); // Renvoie 3

23 Redéfinitions de méthodes La méthode d'une classe dérivée masque la méthode de la classe mère : class Mere { public: void f() {... } }; class Fille: public Mere { // Fille hérite de Mere public: void f() {... } }; Utilisation : void main() { Fille Fi; Fi.f(); // Appel à Fille::f() Fi.Mere::f(); // Appel à Mere::f() };

24 Liaison statique Sélection d'un attribut ou d'une méthode : Déterminé statiquement à la compilation En fonction du type de la variable (type statique) Exemple : class Mere { public: int f() {... } }; class Fille: public Mere { public: int f() {... } }; void main() { Fille Fi; Mere *ptr = &Fi; int i = ptr->f(); // Appel à Mere::f() (liaison statique) };

25 Liaison dynamique : fonctions virtuelles Pour que la fonction appelée corresponde au type de l'objet pointé (type dynamique) : Mot-clé virtual Exemple : class Mere { public: virtual int f() {... } }; class Fille: public Mere { public: int f() {... } }; void main() { Fille Fi; Mere *ptr = &Fi; int i = ptr->f(); // Appel à Fille::f() (liaison dynamique) };

26 Fonctions virtuelles pures Définition d'une fonction sans en donner son implémentation (laissée aux classes dérivées) (abstraite) class Mere { public: virtual int f() = 0; }; class Fille: public Mere { public: int f() {... } }; Une classe ayant une méthode virtuelle pure (classe abstraite) ne peut pas être instanciée C'est comme ça qu'on simule des interfaces en C++

27 Opérateurs Fonctions à la syntaxe particulière : a + b; c++ ; d += e; f < g; h && i; j >> k; Définition : int operator+(const int& a, const int& b); double operator+=(const double& a); bool operator<(const float& f, const float& g); A surcharger dans vos classes si besoin!

28 Exemples const Point operator+ (const Point& p1, const Point& p2) { Point p(p1); // Constructeur par recopie p.x += p2.x; p.y += p2.y; return p; } std::ostream& operator<<(std::ostream& o, const Point& p) { o << ( << p._x <<, << p._y << ) ; return o; }

29 Pièges Argument non constant => appliquer l'opérateur peut le modifier OK pour le flux de sortie o Résultat non constant => on pourrait écrire p1+p2 =... OK pour o <<... Si on renvoie une référence => référence sur un temporaire OK pour le flux de sortie o Cas particuliers (opérateur = par exemple)

30 Bibliothèques de collections STL Structures de données + itérateurs + algorithmes Exemple : #include <vector> #include <numeric> // Pour accumulate vector<int> v; v.push_back(42); v.push_back(-33); v.push_back(7); sort(v.begin(),v.end()); // Algo utilisé par la STL : introsort for (vector<int>::const_iterator it = v.begin(); it!= v.end(); ++it) cout << *it << endl; cout << Moyenne : << accumulate(v.begin(),v.end(),0.0)/v.size() << endl;

Programmation C++ Séance 6. Łukasz Fronc. 26 octobre 2012

Programmation C++ Séance 6. Łukasz Fronc.  26 octobre 2012 Programmation C++ Séance 6 Łukasz Fronc lfronc@ibisc.univ-evry.fr www.ibisc.fr/~lfronc/ 26 octobre 2012 Łukasz Fronc Programmation C++ 1 / 35 Sommaire Surcharge d opérateurs Fonctions et classes amies

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

Historique C++ C++ : extension objet du langage C Bjarne Stroustrup, années 80 Java Inspiré de la partie objet du C++ Années 90 par SUN Vision discutable : Le C++ est un mélange de Java et de C Normalisé

Plus en détail

Programmation objet 2 et outils de développement Licence 3 Informatique. Année universitaire David Genest

Programmation objet 2 et outils de développement Licence 3 Informatique. Année universitaire David Genest Programmation objet 2 et outils de développement Licence 3 Informatique Année universitaire 2016-2017 David Genest POO2 Licence 3 Informatique 2016-2017 1 Chapitre I Introduction 1 Présentation du cours

Plus en détail

INF3105 Introduction au langage C++

INF3105 Introduction au langage C++ INF3105 Introduction au langage C++ Éric Beaudry Université du Québec à Montréal (UQAM) 2016É Éric Beaudry (UQAM) INF3105 / Intro C++ 2016É 1 / 67 Sommaire 1 Introduction 2 Les fondements du langage C++

Plus en détail

C++ Programmation Objet en C++ Programmation générique en C++ Design Patterns et C++ Policies

C++ Programmation Objet en C++ Programmation générique en C++ Design Patterns et C++ Policies C++ Programmation Objet en C++ Programmation générique en C++ Design Patterns et C++ Policies Meilleur C Le langage C++ se veut un langage C amélioré. Il possède des fonctionnalités supplémentaires, et

Plus en détail

Le besoin Données structurées algorithmes Programme 2

Le besoin Données structurées algorithmes Programme 2 Historique C++ C++ : extension objet du langage C Bjarne Stroustrup, années 80 Java Inspiré de la partie objet du C++ Années 90 par SUN Vision discutable : Le C++ est un mélange de Java et de C Normalisé

Plus en détail

Chapitre 8. Pointeurs & Allocation mémoire

Chapitre 8. Pointeurs & Allocation mémoire Chapitre 8 : Pointeurs & Allocation mémoire 81 Chapitre 8 Pointeurs & Allocation mémoire Chapitre 8 : Pointeurs & Allocation mémoire 82 1. Définitions - La notion de pointeur est spécifique aux langages

Plus en détail

Cours de programmation orientée objet et d algorithmique avancée de V. Jay et S. Balev. FMdKdD fmdkdd [à] free.fr

Cours de programmation orientée objet et d algorithmique avancée de V. Jay et S. Balev. FMdKdD fmdkdd [à] free.fr Cours de programmation orientée objet et d algorithmique avancée de V. Jay et S. Balev FMdKdD fmdkdd [à] free.fr Université du Havre Année 2009 2010 Table des matières 1 Le langage C++ 3 1.1 Particularités

Plus en détail

Informatique III: Programmation en C++

Informatique III: Programmation en C++ Rappel: fstream Informatique III: Programmation en C++ void open(const char *nom fichier, openmode mode) ouvre le fichiers nom fichier dans le mode mode (ifstream: par défaut en lecture, ofstream: par

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

Complément de C++ ISIMA2

Complément de C++ ISIMA2 Complément de C++ ISIMA2 Laurent B. Garcia David R.C. Hill Introduction à la librairie standard du C++ Evolution de la programmation Le but de la manipulation est d'écrire un programme qui affichera "HELLO

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

Une introduction au C/C++ non orienté objet

Une introduction au C/C++ non orienté objet Une introduction au C/C++ non orienté objet Un premier programme en C/C++ : comme il est classique, ce programme écrit bonjour à l'écran. Les types de donnée simples : int, float, double, char, les tableaux,

Plus en détail

0 jour. Programmer java (java se) - niveau 1 OBJECTIFS POUR QUI?

0 jour. Programmer java (java se) - niveau 1 OBJECTIFS POUR QUI? Programmer java (java se) - niveau 1 Cette formation permet aux développeurs de créer des programmes JAVA SE. Elle peut être réalisée avec les outils suivants : - Eclipse - NetBeans OBJECTIFS Ecrire, compiler,

Plus en détail

CHAPITRE. 7.1 Lire et écrire des données dans des fichiers personnels

CHAPITRE. 7.1 Lire et écrire des données dans des fichiers personnels CHAPITRE 7 Entrées et sorties en C 7.1 Lire et écrire des données dans des fichiers personnels Jusqu ici les programmes dont nous avons discutés ne concernent que des e/s pré-définies, standard. Nous voulons

Plus en détail

L1-S2 MPI : Programmation Impérative

L1-S2 MPI : Programmation Impérative L1-S2 MPI : Programmation Impérative Correspondances Langage de Réalisation C++ Ce résumé constitue un aide-mémoire rédigé sous forme d exemples qui illustrent partiellement l utilisation des différentes

Plus en détail

INF3105 Tableaux dynamiques et génériques

INF3105 Tableaux dynamiques et génériques INF3105 Tableaux dynamiques et génériques Éric Beaudry Université du Québec à Montréal (UQAM) 2016A Éric Beaudry (UQAM) INF3105 - Tableaux 2016A 1 / 31 Sommaire 1 Tableau natif C++ 2 Tableau dynamique

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

Méthodologie de la programmation

Méthodologie de la programmation Méthodologie de la programmation Pablo Rauzy pablo rauzy @ univ-paris8 fr pablo.rauzy.name/teaching/mdlp UFR MITSIC / L1 informatique Séance e Aperçu du langage C : introduction Pablo Rauzy (Paris 8 /

Plus en détail

Langage C++ Polymorphisme 18/03/02 POLYMORPHISME

Langage C++ Polymorphisme 18/03/02 POLYMORPHISME POLYMORPHISME 1 LE POLYMORPHISME... 1 1.1 PRÉSENTATION DU PRINCIPE À PARTIR D UN EXEMPLE... 1 1.2 INTÉRÊT... 2 2 LES LIMITES DE L HÉRITAGE... 2 3 IMPLÉMENTATION DU POLYMORPHISME EN LANGAGE C++... 3 3.1

Plus en détail

La programation orientée objet en C++

La programation orientée objet en C++ La programation orientée objet en C++ Houssam HNAIDI Basé sur le cours de Camille COMBIER 20 janvier 2012 Liris - CNRS Lyon Houssam HNAIDI Formation C++ 1/ 40 Plan 1 Héritage Principe Protected 2 Différents

Plus en détail

a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point)

a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point) Question 1 Arbres binaires / monceaux (6 points) a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point) Index 0 1 2 3 4 5 6 7 8 9 Valeur - * * + 6 2 3 2 6 b) Parcourir l arbre

Plus en détail

Programmation Orientée Objet et C++ Christophe Collard

Programmation Orientée Objet et C++ Christophe Collard Programmation Orientée Objet et C++ Plan Notions de base Classes et Objets Construction et destruction d objets Les fonctions amies La surdéfinition d opérateurs Les patrons de fonctions et de classes

Plus en détail

Introduction à la programmation orientée objet en C++

Introduction à la programmation orientée objet en C++ Introduction à la programmation orientée objet en C++ Utilisation d un type (class) #include #define _USE_MATH_DEFINES #include int main() { std::ofstream of("exemple.txt"); } const int

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

Programmation I : Cours de programmation (C++) Variables et opérateurs

Programmation I : Cours de programmation (C++) Variables et opérateurs Programmation I : Cours de () Variables et opérateurs Laboratoire d Intelligence Artificielle Faculté I&C Programmation I Cours 2 : Variables et opérateurs 1 / 25 Vidéos, Quiz et transparents https://www.coursera.org/learn/init-prog-cpp/home/week/1

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

Introduction aux nouveautés du C++ 11

Introduction aux nouveautés du C++ 11 Introduction aux nouveautés du C++ 11 Miss Réunion Laurent NOËL laurent.noel.c2ba@gmail.com http://igm.univ-mlv.fr/ lnoel 07/05/2013 Laurent NOËL 07/05/2013 C++ 11 1 / 39 nullptr Quel est le problème de

Plus en détail

Rappels de langage C A 2

Rappels de langage C A 2 Partie A Rappels de langage C Département Informatique Présentation générale Programme C ensemble de fonctions Les fonctions (leur code source) sont réparties dans un ou plusieurs fichiers textes Une des

Plus en détail

Programmation en C++ C++ de base. Programme C++ Variables, objets, types Fonctions Namespace Tests Boucles Pointeurs, références

Programmation en C++ C++ de base. Programme C++ Variables, objets, types Fonctions Namespace Tests Boucles Pointeurs, références Programmation en C++ C++ de base Programme C++ Variables, objets, types Fonctions Namespace Tests Boucles Pointeurs, références 1 Programme C++ Le programme C++ le plus simple int main() { return 0;...

Plus en détail

Ouvrir le fichier en écriture Écrire les données dans le fichier Fermer le fichier. Lire des données écrites dans un fichier

Ouvrir le fichier en écriture Écrire les données dans le fichier Fermer le fichier. Lire des données écrites dans un fichier Flux Fichiers Généralités Créer un fichier Ouvrir le fichier en écriture Écrire les données dans le fichier Fermer le fichier Lire des données écrites dans un fichier Ouvrir le fichier en lecture Lire

Plus en détail

IN Cours octobre Matthieu Finiasz

IN Cours octobre Matthieu Finiasz IN 101 - Cours 07 21 octobre 2011 présenté par Matthieu Finiasz Pointeurs et adresses mémoires Qu est-ce qu une adresse mémoire? Pour le processeur, la mémoire est un grand tableau d octets : de 2 32 sur

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

Allocation Mémoire T. HSU. September 29, 2014. IUT de LENS, Département informatique. T. HSU Allocation Mémoire

Allocation Mémoire T. HSU. September 29, 2014. IUT de LENS, Département informatique. T. HSU Allocation Mémoire Allocation Mémoire T. HSU IUT de LENS, Département informatique September 29, 2014 Introduction Les algorithmes sous-jacents à tout programme informatique consomment essentiellement deux ressources : du

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

Une introduction a Java 1

Une introduction a Java 1 Une introduction a Java 1 3. Les classes et les objets 3.1. La notion de classe La notion de classe généralise la notion de type On se propose de définir une classe Point destinée à manipuler des points

Plus en détail

Introduction à C++ pour programmeurs C

Introduction à C++ pour programmeurs C SITEL - Université de Neuchâtel Introduction à C++ pour programmeurs C Dr. E. Benoist Novembre 2007 1 Table of Contents Héritage Surcharge de méthode Surcharge d opérateur Métodes virtuelles Destructeur

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

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

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

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

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

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

Objectifs du cours d aujourd hui

Objectifs du cours d aujourd hui Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Introduction à la Programmation Orientée Objet (POO) Introduire les notions d encapsulation

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

Aide Mémoire - langage C

Aide Mémoire - langage C Université du Luxembourg 2005 2006 Aide Mémoire - langage C 1 Directives de préprocesseur inclusion de fichiers pour un fichier système : #include pour un fichier du répertoire courant

Plus en détail

Classe et objet en C++ Encapsulation et cycle de vie

Classe et objet en C++ Encapsulation et cycle de vie Classe et objet en C++ Encapsulation et cycle de vie Joel Falcou Programmation Orientée Objet - IFIPS Apprentissage Introduction Ce cours à pour but, après quelques rappels sur les fondamentaux de la programmation

Plus en détail

L HERITAGE L HERITAGE SIMPLE

L HERITAGE L HERITAGE SIMPLE L HERITAGE L héritage simple Mode de dérivation Redéfinition de méthodes dans la classe dérivée Ajustement d accès Héritage des constructeurs/destructeurs Héritage et amitié Conversion de type dans une

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

Introduction à l informatique Travaux pratiques: séance 1 INFO X. Baumans

Introduction à l informatique Travaux pratiques: séance 1 INFO X. Baumans Introduction à l informatique Travaux pratiques: séance 1 INFO0205-1 X. Baumans (xavier.baumans@ulg.ac.be) Programme de la séance Déclarations de variables INFO0205-1 X.Baumans 1 / 21 Programme de la séance

Plus en détail

4. Pointeurs et allocation dynamique. Définitions et déclarations Tableaux et pointeurs Structures Tableaux multidimensionnels

4. Pointeurs et allocation dynamique. Définitions et déclarations Tableaux et pointeurs Structures Tableaux multidimensionnels 1 4. Pointeurs et allocation dynamique Définitions et déclarations Tableaux et pointeurs Structures Tableaux multidimensionnels 2 Pointeurs Chaque variable a une adresse en mémoire qu il peut être utile

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

LE LANGAGE C POUR MICROCONTROLEURS

LE LANGAGE C POUR MICROCONTROLEURS LE LANGAGE C POUR MICROCONTROLEURS 1. ORGANISATION D UN PROGRAMME C POUR µc. La saisie d un programme en «C» répond pratiquement toujours à la même architecture. Le symbole «#» est suivi d une directive

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

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR Université du Québec (UQ) École de technologie supérieure Service des enseignements généraux Local B-2500-396-8938 Site Internet : http://www.seg.etsmtl.ca/inf115/ INF145 Programmation avancée et langage

Plus en détail

Licence d informatique. Hugues Fauconnier.

Licence d informatique. Hugues Fauconnier. Cours programmationorientée objet en Java Licence d informatique Hugues Fauconnier hf@liafa.jussieu.fr Plan du cours Introduction: programmation objet pourquoi? Comment? Un exemple en Java Classes et objets

Plus en détail

Dans ce chapitre nous présentons comment développer les classes et créer les objets.

Dans ce chapitre nous présentons comment développer les classes et créer les objets. Chapitre 2 La programmation orientée objet est une technique très puissante permettant d exploiter d énormes ressources stockées sous forme de classes et accessibles librement sur Internet. L appellation

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

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

Introduction à la programmation Travaux pratiques: séance 1 INFO0201-1 Introduction à la programmation Travaux pratiques: séance 1 INFO0201-1 B. Baert, X. Baumans & F. Ludewig Bruno.Baert@ulg.ac.be - Xavier.Baumans@ulg.ac.be Implication des TP info et Pourquoi programmer?

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

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

Projet C++ : de la STL à l objet

Projet C++ : de la STL à l objet Projet C++ : de la STL à l objet November 4, 2014 Durant ce TP, nous allons faire un rappel avec la syntaxe et les concepts de base du C++, qui diffèrent du langage C que vous connaissez déjà. Le TP est

Plus en détail

CH.4 ENVIRONNEMENTS D EXÉCUTION

CH.4 ENVIRONNEMENTS D EXÉCUTION CH.4 ENVIRONNEMENTS D EXÉCUTION 4.1 Les langages procéduraux 4.2 L organisation de l espace mémoire 4.3 Les stratégies d allocation 4.4 L accès aux noms non locaux 4.5 Les tables des symboles 4.6 L allocation

Plus en détail

Variables complexes : tableaux

Variables complexes : tableaux Variables complexes : tableaux Rappel : tableau = regroupement de variables d un même type sous une seule dénomination Ex : chocolat[100], on définit sous l identifiant chocolat, un regroupement de 100

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

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

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

LES CLASSES DEFINITION D UNE CLASSE

LES CLASSES DEFINITION D UNE CLASSE LES CLASSES Définition d une classe Droits d accès Types de classes Recommandations de style Définition des fonctions membres Instanciation d une classe Utilisation des objets Fonctions membres constantes

Plus en détail

Algorithmique - Techniques fondamentales de programmation Exemples en PHP (nombreux exercices corrigés) - 2ième édition (BTS, DUT Informatique)

Algorithmique - Techniques fondamentales de programmation Exemples en PHP (nombreux exercices corrigés) - 2ième édition (BTS, DUT Informatique) Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

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

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 4 (L2) - Mention Mathématiques, Informatique Année universitaire 2015/2016 Programmation Orientée Objet Introduction à

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 17 Les patrons de fonctions Rappels Introduite par la version 3, la notion de patron

Plus en détail

À propos des variables C

À propos des variables C 2 À propos des variables C Au sommaire de ce chapitre Mémoire d un programme Objective-C Variables automatiques Variables externes Mots clés de déclaration Portée Allocation dynamique Lorsque vous développez

Plus en détail

Cours Langage C++ : Héritage et polymorphisme Programmation Orienté Objet

Cours Langage C++ : Héritage et polymorphisme Programmation Orienté Objet Cours Langage C++ : Héritage et polymorphisme Programmation Orienté Objet Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 Sommaire 1 Classes et objets 2 L héritage 3 Polymorphisme 4 Classe abstraite

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

IFT1169 Examen Final

IFT1169 Examen Final Trimestre Hiver, 2006 Mohamed Lokbani IFT1169 Examen Final Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : mardi 18 avril 2006 Durée : 2 heures et 45 minutes

Plus en détail

Langage C avancé Les Pointeurs

Langage C avancé Les Pointeurs Langage C avancé Les Pointeurs Samuel KOKH Maison de la Simulation - CEA Saclay samuel.kokh@cea.fr MACS 1 (2013-2014) Institut Galilée S. KOKH (MdlS) Langage C avancé ISPG/MACS 1 2013-2014 1 / 32 Variables

Plus en détail

Objectifs. Allocation dynamique. Récapitulation. Tableaux dynamiques. EPFL 2016 Jean-Cédric Chappelier. Objectifs. Allocation dynamique

Objectifs. Allocation dynamique. Récapitulation. Tableaux dynamiques. EPFL 2016 Jean-Cédric Chappelier. Objectifs. Allocation dynamique du cours d aujourd hui Programmation «orientée système» LANGAGE C POINTEURS (2/5) Accès mémoire et gestion : Exemple concret : tableaux Laboratoire d Intelligence Artificielle Faculté I&C Programmation

Plus en détail

Les sous-programmes. Chapitre 6. 6.1 Définition d un sous-programme. Déclaration algorithmique d un sous-programme

Les sous-programmes. Chapitre 6. 6.1 Définition d un sous-programme. Déclaration algorithmique d un sous-programme Chapitre 6 Les sous-programmes 6.1 Définition d un sous-programme Un sous-programme est un élément de programme nommé et éventuellement paramétré, que l on définit afin de pouvoir ensuite l appeler par

Plus en détail

Éléments d informatique Cours 8 et 9. Fonctions

Éléments d informatique Cours 8 et 9. Fonctions Éléments d informatique Cours 8 et 9. Fonctions Pierre Boudes 24 novembre 2010 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Diapos de cours 8 (rappels)

Plus en détail

TP 1 : Ecriture, compilation et exécution de programmes C simples

TP 1 : Ecriture, compilation et exécution de programmes C simples TP 1 : Ecriture, compilation et exécution de programmes C simples Objectifs : Découvrir la syntaxe et la sémantique du langage C. Etre capable d écrire en C un algorithme simple. SYNTAXE DU LANGAGE C...

Plus en détail

L3 MIASHS. INF F5 Héritage.

L3 MIASHS. INF F5 Héritage. L3 MIASHS INF F5 Héritage Daniel.Bardou@upmf-grenoble.fr Sommaire Définitions Constructeurs et héritage Pseudo-variables Ajout d'attributs Ajouts et redéfinitions de méthodes Polymorphisme d'inclusion

Plus en détail

Chapitre 8. Patrons de fonctions Templates

Chapitre 8. Patrons de fonctions Templates Chapitre 8 : Patrons de fonctions 183 Chapitre 8 Patrons de fonctions Templates Chapitre 8 : Patrons de fonctions 184 1. Généralités - Modèle que le compilateur utilise pour créer des fonctions au besoin.

Plus en détail

TP 5 : Entrées/Sorties, Fichiers, Chaînes de caractères

TP 5 : Entrées/Sorties, Fichiers, Chaînes de caractères TP 5 : Entrées/Sorties, Fichiers, Chaînes de caractères Objectifs : Maîtriser les entrées/sorties au clavier et à l écran ; Savoir manipuler les fichiers de données ; Savoir manipuler des chaînes de caractères.

Plus en détail

Du C au C++ De la programmation procédurale à l'objet (2ième édition)

Du C au C++ De la programmation procédurale à l'objet (2ième édition) Introduction 1. Objectif : apprendre à programmer 25 2. Contenu 25 3. Librairies graphiques 26 4. Public visé 26 5. Comment apprendre à programmer? 27 5.1 Comprendre n'est pas savoir faire 27 5.2 Trois

Plus en détail

Polytech Lille GIS 3 Structures de Données Feuille de TP numéro 4

Polytech Lille GIS 3 Structures de Données Feuille de TP numéro 4 Polytech Lille GIS 3 Structures de Données Feuille de TP numéro 4 Ce TP porte sur l algorithme de Graham, qui calcule l enveloppe convexe d un nuage de points. Le but pédagogique est le suivant : comprendre

Plus en détail

Programmation en C++ Agrégation génie électrique. François Schwarzentruber

Programmation en C++ Agrégation génie électrique. François Schwarzentruber Programmation en C++ Agrégation génie électrique François Schwarzentruber Partie I Programmation impérative page 5 Classe Exceptions Manipuler des fichiers Mon premier programme Algorithmique de base

Plus en détail

Énoncé. Étapes de l algorithme :

Énoncé. Étapes de l algorithme : Cours C-2 1 Cours C-2 2 Algorithme d Euclide Introduction au langage C Cours 2 Du problème au programme Jean-Jacques Girardot / Marc Roelens Septembre 2007 Énoncé Pour obtenir le PGCD de deux nombres positifs

Plus en détail

POO Suite. Soit un objet du monde réel ( ou de notre domaine de travail ).

POO Suite. Soit un objet du monde réel ( ou de notre domaine de travail ). POO Suite I. Les classes : 1) Définition : Soit un objet du monde réel ( ou de notre domaine de travail ). Décrire le comportement d'un objet, c'est créer une classe. Un objet s'appelle l'instance d'une

Plus en détail

Cours de Programmation Impérative Allocation dynamique

Cours de Programmation Impérative Allocation dynamique Cours de Programmation Impérative Allocation dynamique Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 31 P r`e v i`o u sfi l y `o nffl "P r`oˆgˇr`a

Plus en détail

PARADIGME ORIENTÉ OBJET - PART 2

PARADIGME ORIENTÉ OBJET - PART 2 PARADIGME ORIENTÉ OBJET - PART 2 A programming paradigm that uses objects to design systems. Sébastien Adam Les concepts avancés de la programmation orientée-objet 2 Plan Héritage en Java Modificateur

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

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

Programmation C++ (débutant)/les pointeurs Programmation C++ (débutant)/les pointeurs 1 Programmation C++ (débutant)/les pointeurs Le cours du chapitre 10 : Les pointeurs Présentation Les pointeurs sont une des difficultés majeures du C++. Nous

Plus en détail

2. Variables et types simples

2. Variables et types simples 1 2. Variables et types simples Déclarations de variables Types scalaires Conversions de types Tableau Espaces de visibilité et classes d allocation 2 Types et variables Tout objet doit être déclaré avant

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

Programmation en C++ Fonctions

Programmation en C++ Fonctions Programmation en C++ Fonctions Déclaration et définition de fonctions Arguments Surcharge Arguments optionnels Fonctions constantes Fonctions opérateurs 1 Fonction Déclaration = spécification de l'identificateur

Plus en détail

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

COURS 7. Programmation impérative. Structures. Unions. Types construits

COURS 7. Programmation impérative. Structures. Unions. Types construits COURS 7 Programmation impérative Types construits Structures Énumérations Unions SOMMAIRE Informations pratiques Introduction Rappels et compléments Programmer en Langage C Compilation Structure d un dun

Plus en détail