Exemple 1 : ensembles d’entiers
Programmation en langage C++ - Exemples
S8066 v1 Article de référence

Exemple 1 : ensembles d’entiers
Programmation en langage C++ - Exemples

Auteur(s) : Claude DELANNOY

Date de publication : 10 sept. 2003 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Exemple 1 : ensembles d’entiers

  • 1.1 - Première ébauche de solution
  • 1.2 - Surdéfinition du constructeur par recopie
  • 1.3 - Surdéfinition de l’affectation

2 - Exemple 2 : utilisation d’un patron de classes

3 - Exemple 3 : liste hétérogène

Sommaire

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’article

Auteur(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].

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-s8066

Article inclus dans l'offre

"Automatique et ingénierie système"

(138 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

1. Exemple 1 : ensembles d’entiers

Nous allons réaliser une classe nommée set_int permettant de manipuler des ensembles de nombres entiers. Nous prévoirons les opérateurs suivants (e désigne un élément de type set_int et n un entier) :

  • <<, tel que e<<n ajoute l'élément n à l'ensemble e ;

  • %, tel que n % e vale 1 si n appartient à e et 0 sinon ;

  • <<, tel que flot << e envoie le contenu de l'ensemble e sur le flot indiqué, sous la forme :

[entier_1, entier_2, ... entier_n]

La fonction membre cardinal fournira le nombre d'éléments de l'ensemble.

Pour ne pas alourdir l’exemple, le nombre maximal d'entiers que pourra contenir l'ensemble sera précisé au constructeur qui allouera dynamiquement l'espace nécessaire.

1.1 Première ébauche de solution

Naturellement, notre classe comportera, en membres données, le nombre maximal (nmax) d'éléments de l'ensemble, le nombre courant d'éléments (nelem) et un pointeur sur l'emplacement contenant les valeurs de l'ensemble.

L’opérateur << devra être surdéfini de manière à disposer d’un premier opérande de type set_int et d’un second opérande entier. Comme le premier opérande est du type de la classe, nous pouvons le définir sous forme d’une fonction membre (de nom operator<<).

En revanche, l'opérateur % doit être surdéfini obligatoirement sous la forme d'une fonction amie, puisque son premier opérande n'est pas de type classe. L'opérateur de sortie dans un flot doit, lui aussi, être surdéfini sous la forme d'une fonction amie, mais pour une raison différente : son premier argument est d’un type classe (ostream) déjà défini et que l’on ne peut pas modifier.

Voici une première ébauche de ce que pourrait être la déclaration de notre classe set_int :

Exemple

#include <iostream>

using namespace std ;

class set_int

{int * adval ; // adresse du tableau des valeurs

int nmax ;// nombre maxi d'éléments

int nelem ;// nombre courant d'éléments

public :

set_int (int = 20) ;// constructeur

~set_int () ;// destructeur

int cardinal () ;// cardinal de l'ensemble

set_int & operator << (int) ;//...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Exemple 1 : ensembles d’entiers

Article inclus dans l'offre

"Automatique et ingénierie système"

(138 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire
Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 94 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Automatique et ingénierie système"

(138 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

SysML : une notation pour spécifier et concevoir des systèmes

Cet article présente les principes de base de la notation SysML nécessaires pour aborder une ...

UML : une notation pour spécifier et concevoir des Logiciels

Cet article présente les principes de base de la notation UML nécessaires pour aborder une modélisation ...

SysML/UML : comment les utiliser ? Avec quelle méthode ? - Un exemple d’application avec UML-CS et SysML-CS

Cet article présente les principes de base d’une méthode de modélisation mettant en œuvre SysML et UML ...

SysML/UML-CS : une étude de cas

SysML est une méthode de modélisation des systèmes. Cet article présente une application directe de ...