Page d'accueil encyclopedie-enligne.com en page d'accueil
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

C plus plus


image:Langage_progr.png
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

Préliminaires

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.

Fonctionnalités introduites par le C++

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 :

La compilation d'un programme en C++ effectue également un contrôle plus minutieux sur le typage.

La bibliothèque standard (C++ standard library)

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

La programmation orientée objet en C++

Le C++ introduit des concepts de programmation orientée objet. Il offre pour ce faire les classes qui couvrent deux besoins essentiels :

L'encapsulation en C++

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

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.

Exemples de programme

« Hello, world »

#include <iostream>
 
int main()
{
 std::cout << "Hello, world!" << std::endl;
}

Déclaration de classe

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 ();
};


Déclaration de templates

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;

Bibliographie



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia