Présentation
RÉSUMÉ
Cet article présente trois exemples de programmes utilisant les fonctionnalités du langage orienté objet C++. Le premier exemple illustre l'utilisation des classes, à travers la manipulation d'ensembles d'entiers. Le second exemple traite des patrons de classe. Et le troisième concerne la création d'une classe permettant de gérer une liste chaînée d’objets de types différents.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleAuteur(s)
-
Claude DELANNOY : Ingénieur de l’ENSEM (École nationale supérieure d’électricité - et de mécanique) de Nancy - Ingénieur informaticien au CNRS (Centre national de la recherche scientifique)
INTRODUCTION
Nous proposons quelques exemples de programmes illustrant la plupart des fonctionnalités de C++ que nous venons de présenter dans l’article [S 8 065].
DOI (Digital Object Identifier)
Présentation
Article inclus dans l'offre
"Automatique et ingénierie système"
(138 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.
2. Exemple 2 : utilisation d’un patron de classes
Dans le précédent exemple, nous avons volontairement évité de recourir aux composants standards.
Or, si l'on ne s'intéresse qu'aux seules fonctionnalités de la classe, en dehors de la sortie sur un flot, celles-ci sont fournies intégralement par le composant standard set<int> (son utilisation nécessite l’inclusion du fichier en-tête set). En ce qui concerne la sortie sur un flot, on dispose de plusieurs démarches. On peut bien sûr la programmer au fur et à mesure des besoins, en écrivant à chaque fois les quelques instructions de parcours de l'ensemble :
set<int> ens ;
set<int>::iterator ie ;
.....
for (ie=ens.begin() ; ie!=ens.end() ; ie++) cout << *ie << " " ;
On peut aussi en faire une fonction ordinaire, comme dans cet exemple, analogue à l'exemple d'utilisation précédent.
Premier exemple d’utilisation de la classe set<int>
#include <iostream>
#include <set>// pour set<int>
using namespace std ;
void affiche (set<int>) ;
main()
{void fct (set<int>) ;
void fctref (set<int> &) ;
set<int> ens ;
cout << "donnez 10 entiers \n" ;
int i, n ;
for (i=0 ; i<10 ; i++)
{ cin >> n ;
ens.insert(n) ;
}
cout << "il y a : " << ens.size() << " entiers differents\n" ;
cout << "qui forment l\'ensemble : " ; affiche(ens) ;
fct (ens) ;
cout << "au retour de fct, il y en a " << ens.size() << "\n" ;
cout << "qui forment l\'ensemble : " ; affiche(ens) ;
fctref (ens) ;
cout << "au retour de fctref, il y en a " << ens.size() << "\n" ;
cout << "qui forment l\'ensemble : " ; affiche(ens) ;
cout << "appartenance de -1 : " << ens.count(-1) << "\n" ;
cout << "appartenance de 500 : " << ens.count(500) << "\n" ;
set<int> ensa, ensb ;
ensa = ensb = ens ;
cout << "ensemble a : " ; affiche(ensa) ;
cout << "ensemble b : " ; affiche(ensb) ;
}
void fct (set<int> e)
{cout << "ensemble reçu par fct : " ; affiche(e) ;
e.insert(-1) ; e.insert(-2) ; e.insert(-3) ;
}
void fctref (set<int> & e)
{cout << "ensemble recu par fctref : " ; affiche(e) ;
e.insert(-1) ; e.insert(-2) ; e.insert(-3) ;
}
void affiche (set<int> e)
{set<int>::iterator ie ;
cout << "[ " ;
for (ie=e.begin() ; ie!=e.end()...
Exemple 2 : utilisation d’un patron de classes
Article inclus dans l'offre
"Automatique et ingénierie système"
(138 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.
Article inclus dans l'offre
"Automatique et ingénierie système"
(138 articles)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.