Exemple 3 : liste hétérogène
Programmation en langage C++ - Exemples
S8066 v1 Article de référence

Exemple 3 : liste hétérogène
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 95 % à 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

Lecture en cours
Présentation

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

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

Nous allons créer une classe permettant de gérer une liste chaînée d’objets de types différents et disposant des fonctionnalités suivantes :

  • ajout d’un nouvel élément ;

  • affichage des valeurs de tous les éléments de la liste ;

  • mécanisme de parcours de la liste.

Rappelons que, dans une liste chaînée, chaque élément comporte un pointeur sur l’élément suivant. En outre, un pointeur désigne le premier élément de la liste. Cela correspond à ce schéma :

Mais ici l’on souhaite que les différentes informations puissent être de types différents. Aussi chercherons nous à isoler dans une classe (nommée liste) toutes les fonctionnalités de gestion de la liste elle-même sans entrer dans les détails spécifiques aux objets concernés. Nous appliquerons alors ce schéma :

La classe liste elle-même se contentera donc de gérer des éléments simples réduits chacun à :

  • un pointeur sur l'élément suivant ;

  • un pointeur sur l'information associée (en fait, ici, un objet).

On voit donc que la classe va posséder au moins :

  • un membre donnée : pointeur sur le premier élément (debut, dans notre schéma) ;

  • une fonction membre destinée à insérer dans la liste un objet dont on lui fournira l’adresse (nous choisirons l’insertion en début de liste, par souci de simplification).

L’affichage des éléments de la liste se fera en appelant une méthode affiche, spécifique à l’objet concerné. Cela implique la mise en oeuvre de la ligature dynamique par le biais des fonctions virtuelles. La fonction affiche sera définie dans un premier type d’objet (nommé ici mere) et redéfinie dans chacune de ses descendantes.

En définitive, on pourra gérer une liste d'objets de types différents sous réserve que les classes correspondantes soient toutes dérivées d'une même classe de base. Cela peut sembler quelque peu restrictif. En fait, cette « famille de classes » peut toujours être obtenue par la création d'une classe abstraite (réduite au minimum, éventuellement à une fonction affiche vide ou virtuelle pure) destinée simplement à donner naissance aux classes concernées. Bien entendu, cela n'est concevable...

Logo Techniques de l'Ingenieur

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

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Exemple 3 : liste hétérogène

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 93 % à 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 ...