Introduction au langage C++
Introduction au langage C++ 
07/10/14 2 
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 récepteurs radar qui tentent de 
localiser un cible)
Introduction au langage C++ 
07/10/14 3 
> Sommaire 
1. Introduction au langage C++ 
a) Présentation 
b) Hello World! 
c) Namespace 
d) Références 
e) Classes 
f) Constructeurs/destructeur et surcharge 
g) Liste d’initialisation 
h) Opérateurs 
i) Fonctions amies 
j) Héritage 
k) Classes abstraites 
l) Autres
Introduction au langage C++ 
07/10/14 4 
Introduction au langage C++
Introduction au langage C++ 
07/10/14 5 
Présentation 
 Le C est inclus (à 99%) dans le C++ 
 Le C++ rajoute des notions de programmation 
orientée objet (classe, héritage, 
polymorphisme… comme en Java), ainsi que 
des facilités d’écriture (surcharge 
d’opérateurs…)
Introduction au langage C++ 
07/10/14 6 
Hello World! 
Notion de namespace 
Opérateur
Introduction au langage C++ 
07/10/14 7 
Namespace 
Plus besoin d’utiliser std::
Introduction au langage C++ 
07/10/14 8 
Réfé rences 
Paramètre passé par référence
Introduction au langage C++ 
07/10/14 9 
Classes 
TestClass.cpp 
TestClass.h 
Main.cpp
Introduction au langage C++ 
07/10/14 10 
Constructeurs/Destructeur et 
surcharge 
TestClass.h TestClass.cpp
Introduction au langage C++ 
07/10/14 11 
Liste d’initialisation 
L’initialisation des membres 
dans le constructeur peut être 
faite de cette façon
Introduction au langage C++ 
07/10/14 12 
Opérateurs 
TestClass.cpp 
TestClass.h
Introduction au langage C++ 
07/10/14 13 
Opérateurs 
Résultat 
Main.cpp
Introduction au langage C++ 
07/10/14 14 
Fonctions amies 
TestClass.h
Introduction au langage C++ 
07/10/14 15 
Fonctions amies 
TestClass.cpp
Introduction au langage C++ 
07/10/14 16 
Fonctions amies 
Main.cpp
Introduction au langage C++ 
07/10/14 17 
Héritage 
Classe de base 
Classe dérivées 
Appel à un constructeur 
spécifique de la classe de base
Introduction au langage C++ 
07/10/14 18 
Classes abstraites 
Classe de base abstraite 
Classe dérivées
Introduction au langage C++ 
07/10/14 19 
Classes abstraites
Introduction au langage C++ 
07/10/14 20 
Autres apports du C++ par rapport au 
C 
 new, delete et new[], delete[] en C++ à la 
place de malloc() et free() en C pour utiliser 
des pointeurs et tableaux à taille variable 
 Mécanisme d’exceptions 
 Templates 
 Classes vector, list…
Introduction au langage C++ 
07/10/14 21 
Annexes
 Le C est inclus (à 99%) dans le C++ : quand 
on fait du C, on fait aussi du C++ mais 
l’inverse n’est pas forcément vrai 
 Du code C ou C++ peut être é crit dans un 
fichier .cpp mais seul du code C peut être écrit 
dans un fichier .c 
 Dans un .h, on peut écrire du C ou du C++, 
mais il faut que les .c n’incluent que des .h 
avec du C 
Introduction au langage C++ 
07/10/14 22
Introduction au langage C++ 
07/10/14 23 
 Différences entre les compilateurs Windows et Linux 
– Linux 
• Le compilateur C le plus utilisé est GCC 
• Son équivalent C++ est G++ 
– Windows 
• GCC/G++ existent avec Cygwin et MinGW 
• Différents IDE existent et fournissent leurs propres compilateurs 
– Microsoft Visual Studio avec CL 
– Borland C++ Builder / Turbo C++ / Borland Developper 
Studio avec BCC32 
– Code Blocks / Dev-C++ avec MinGW
 Différences entre les compilateurs Windows et Linux 
Introduction au langage C++ 
07/10/14 24 
Equivalences Linux / Windows 
Linux/GCC Windows/Visual C++ 
Fichiers objets .o .obj 
Bibliothèque statique 
.a .lib 
Bibliothèque dynamique 
.so .dll 
Exécutable - .exe
Introduction au langage C++ 
07/10/14 25 
 Utilisation de bibliothèques de fonctions 
externes 
Fichiers .c/.cpp 
Fichiers .obj 
Fichier .exe 
Fichier .lib 
Fichier .dll 
Compilation 
Est utilisée 
Edition des liens 
Edition des liens 
Regroupement 
Edition des liens
Introduction au langage C++ 
07/10/14 26 
 Utilisation de bibliothèques de fonctions externes 
– Cas où on possède des fichiers .h et .c/.cpp 
• Exemple : on a Main.cpp qui doit appeler des fonctions déclarées dans Lib.h 
et définies dans Lib.cpp 
– On met #include « Lib.h » dans Main.cpp 
– On copie Lib.h et Lib.cpp dans le dossier de Main.cpp 
– On compile et lie Lib.cpp et Main.cpp en les ajoutant au 
projet
Introduction au langage C++ 
07/10/14 27 
 Utilisation de bibliothèques de fonctions externes 
– Cas où on possède des fichiers .h, .lib et .dll 
• Exemple : on a Main.cpp qui doit appeler des fonctions déclarées dans 
Lib.h et définies dans Lib.lib et Lib.dll 
– On met #include « Lib.h » dans Main.cpp 
– On ajoute le dossier de Lib.h dans les chemins de 
recherche de fichiers .h du projet 
– On ajoute le dossier de Lib.lib dans les chemins de 
recherche de fichiers .lib du projet 
– On compile Main.cpp et lie avec Lib.lib en les ajoutant 
au projet 
– On ajoute le dossier de Lib.dll à la variable 
d’environnement PATH du système

Intro c++

  • 1.
  • 2.
    Introduction au langageC++ 07/10/14 2 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 récepteurs radar qui tentent de localiser un cible)
  • 3.
    Introduction au langageC++ 07/10/14 3 > Sommaire 1. Introduction au langage C++ a) Présentation b) Hello World! c) Namespace d) Références e) Classes f) Constructeurs/destructeur et surcharge g) Liste d’initialisation h) Opérateurs i) Fonctions amies j) Héritage k) Classes abstraites l) Autres
  • 4.
    Introduction au langageC++ 07/10/14 4 Introduction au langage C++
  • 5.
    Introduction au langageC++ 07/10/14 5 Présentation  Le C est inclus (à 99%) dans le C++  Le C++ rajoute des notions de programmation orientée objet (classe, héritage, polymorphisme… comme en Java), ainsi que des facilités d’écriture (surcharge d’opérateurs…)
  • 6.
    Introduction au langageC++ 07/10/14 6 Hello World! Notion de namespace Opérateur
  • 7.
    Introduction au langageC++ 07/10/14 7 Namespace Plus besoin d’utiliser std::
  • 8.
    Introduction au langageC++ 07/10/14 8 Réfé rences Paramètre passé par référence
  • 9.
    Introduction au langageC++ 07/10/14 9 Classes TestClass.cpp TestClass.h Main.cpp
  • 10.
    Introduction au langageC++ 07/10/14 10 Constructeurs/Destructeur et surcharge TestClass.h TestClass.cpp
  • 11.
    Introduction au langageC++ 07/10/14 11 Liste d’initialisation L’initialisation des membres dans le constructeur peut être faite de cette façon
  • 12.
    Introduction au langageC++ 07/10/14 12 Opérateurs TestClass.cpp TestClass.h
  • 13.
    Introduction au langageC++ 07/10/14 13 Opérateurs Résultat Main.cpp
  • 14.
    Introduction au langageC++ 07/10/14 14 Fonctions amies TestClass.h
  • 15.
    Introduction au langageC++ 07/10/14 15 Fonctions amies TestClass.cpp
  • 16.
    Introduction au langageC++ 07/10/14 16 Fonctions amies Main.cpp
  • 17.
    Introduction au langageC++ 07/10/14 17 Héritage Classe de base Classe dérivées Appel à un constructeur spécifique de la classe de base
  • 18.
    Introduction au langageC++ 07/10/14 18 Classes abstraites Classe de base abstraite Classe dérivées
  • 19.
    Introduction au langageC++ 07/10/14 19 Classes abstraites
  • 20.
    Introduction au langageC++ 07/10/14 20 Autres apports du C++ par rapport au C  new, delete et new[], delete[] en C++ à la place de malloc() et free() en C pour utiliser des pointeurs et tableaux à taille variable  Mécanisme d’exceptions  Templates  Classes vector, list…
  • 21.
    Introduction au langageC++ 07/10/14 21 Annexes
  • 22.
     Le Cest inclus (à 99%) dans le C++ : quand on fait du C, on fait aussi du C++ mais l’inverse n’est pas forcément vrai  Du code C ou C++ peut être é crit dans un fichier .cpp mais seul du code C peut être écrit dans un fichier .c  Dans un .h, on peut écrire du C ou du C++, mais il faut que les .c n’incluent que des .h avec du C Introduction au langage C++ 07/10/14 22
  • 23.
    Introduction au langageC++ 07/10/14 23  Différences entre les compilateurs Windows et Linux – Linux • Le compilateur C le plus utilisé est GCC • Son équivalent C++ est G++ – Windows • GCC/G++ existent avec Cygwin et MinGW • Différents IDE existent et fournissent leurs propres compilateurs – Microsoft Visual Studio avec CL – Borland C++ Builder / Turbo C++ / Borland Developper Studio avec BCC32 – Code Blocks / Dev-C++ avec MinGW
  • 24.
     Différences entreles compilateurs Windows et Linux Introduction au langage C++ 07/10/14 24 Equivalences Linux / Windows Linux/GCC Windows/Visual C++ Fichiers objets .o .obj Bibliothèque statique .a .lib Bibliothèque dynamique .so .dll Exécutable - .exe
  • 25.
    Introduction au langageC++ 07/10/14 25  Utilisation de bibliothèques de fonctions externes Fichiers .c/.cpp Fichiers .obj Fichier .exe Fichier .lib Fichier .dll Compilation Est utilisée Edition des liens Edition des liens Regroupement Edition des liens
  • 26.
    Introduction au langageC++ 07/10/14 26  Utilisation de bibliothèques de fonctions externes – Cas où on possède des fichiers .h et .c/.cpp • Exemple : on a Main.cpp qui doit appeler des fonctions déclarées dans Lib.h et définies dans Lib.cpp – On met #include « Lib.h » dans Main.cpp – On copie Lib.h et Lib.cpp dans le dossier de Main.cpp – On compile et lie Lib.cpp et Main.cpp en les ajoutant au projet
  • 27.
    Introduction au langageC++ 07/10/14 27  Utilisation de bibliothèques de fonctions externes – Cas où on possède des fichiers .h, .lib et .dll • Exemple : on a Main.cpp qui doit appeler des fonctions déclarées dans Lib.h et définies dans Lib.lib et Lib.dll – On met #include « Lib.h » dans Main.cpp – On ajoute le dossier de Lib.h dans les chemins de recherche de fichiers .h du projet – On ajoute le dossier de Lib.lib dans les chemins de recherche de fichiers .lib du projet – On compile Main.cpp et lie avec Lib.lib en les ajoutant au projet – On ajoute le dossier de Lib.dll à la variable d’environnement PATH du système