| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
![]() |
| Cet article fait partie de la série Langages de programmation |
| Langages orientés objet |
| Ada 95 - C++ - C# Common lisp object system Delphi - Eiffel - Java - Nice |
| Langages impératifs |
| APL - ASP Assembleur BASIC - C - Pascal Perl - PHP - Python |
| Langages fonctionnels |
| ML/OCaml
- Lisp/Common Lisp Forth - Logo - Scheme |
| Langages déclaratifs |
| Clips - Prolog |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
| Sommaire |
Le C++ est un langage de programmation à usage multiple. Ce langage permet la programmation sous de multiples paradigmes comme, par exemple, la programmation procédurale, la programmation orientée objet, la programmation générique. Au cours des années 1990, le C++ est devenu l'un des langages de programmation les plus populaires dans l'industrie informatique. Le langage C++ n'appartient à personne et par conséquent n'importe qui peut l'utiliser sans payer de droits.
Bjarne Stroustrup a développé le C++ au cours des années 1980, alors qu'il travaillait dans le laboratoire de recherche Bell d'AT&T. Il s'agissait en l'occurrence d'améliorer le langage C et il l'avait d'ailleurs nommé C with classes (« C avec des classes »). Les premières améliorations se concrétisèrent donc par l'ajout du support des classes, suivies par de nombreuses autres comme les fonctions virtuelles, la surcharge d'opérateurs, l'héritage (simple ou multiple), les « templates », la gestion d'exceptions...
Le langage C++ est normalisé par l'ISO. Sa première normalisation date de 1998 (ISO/IEC 14882:1998), et sa dernière de 2003 (ISO/IEC 14882:2003). La normalisation de 1998 standardise la base du langage (Core Language) ainsi que la bibliothèque C++ standard (C++ Standard Library). La normalisation de 2003 inclut également la Standard Template Library et la C Standard Library .
Il existe de nombreuses autres bibliothèques en C++ non incluses dans le standard. De plus, le C++ permet l'utilisation des nombreuses bibliothèques C existantes.
On peut considérer que le C++ « est du C » avec un ajout de fonctionnalités. Une remarque importante est à faire cependant : Certains programmes syntaxiquement corrects en C, ne le sont pas en C++.
Les fonctionnalités ajoutées sont :
new et delete pour la gestion d'allocation mémoire ;bool (booléen) ;const pour définir des constantes (repris par C à la fin des années 1980) ;inline ;:: ;La compilation d'un programme en C++ effectue également un contrôle plus minutieux sur le typage.
La bibliothèque C++ standard est en grande partie un surensemble des fonctions disponibles dans la bibliothèque C standard. Elle englobe la STL qui met à la disposition du programmeur des outils puissants comme les collections et les itérateurs.
A l'origine, la STL était une bibliothèque développée par Hewlett-Packard. Dans la norme, celle-ci n'est pas appelée STL, car elle est considérée comme faisant partie de la bibliothèque C++ standard. Toutefois, beaucoup de personnes l'appellent encore de cette manière pour distinguer d'une part, les fonctions d'entrées/sorties comprises dans cette bibliothèque et, d'autre part, celles fournies par la bibliothèque C.
Comme pour le C, l'utilisation d'une bibliothèque se fait par l'intermédiaire de la directive #include (suivie du
nom du fichier d'en-tête).
Le C++ introduit des concepts de programmation orientée objet. Il offre pour ce faire les classes qui couvrent deux besoins essentiels :
L'encapsulation permet de faire abstraction du fonctionnement interne (c'est-à-dire, l'implémentation) d'une classe et ainsi
de ne se préoccuper que des services rendus par celle-ci. Le C++ implémente l'encapsulation en permettant de déclarer les membres
d'une classe avec le mot réservé public, private ou protected. Ainsi, lorsqu'un membre est
déclaré :
friend).Le C++ n'impose pas l'encapsulation des membres dans leurs classes. On pourrait donc déclarer tous les membres publics, mais en perdant une partie des bénéfices apportés par la programmation orientée objet. Il est de bon usage de déclarer toutes les données privées, ou au moins protégées, et de rendre publiques les méthodes agissant sur ces données. Ceci permet de cacher les détails de l'implémentation de la classe.
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
}
class MessageInternet
{
private:
string m_sujet;
string m_expediteur;
string m_destinataire;
public:
MessageInternet (string sujet, string expediteur, string destinataire);
string sujet ();
string expediteur ();
string destinataire ();
};
template<typename String> class Message {
public:
typedef String string_type;
private:
string_type m_sujet;
string_type m_expediteur;
string_type m_destinataire;
public:
Message(string_type sujet, string_type expediteur, string_type destinataire);
string_type sujet ();
string_type expediteur ();
string_type destinataire ();
};
typedef Message<string> MessageString; // MessageString est fonctionnellement équivalent à
// la classe MessageInternet ci-dessus
typedef Message<UnicodeString> MessageUnicode;


