TP #3 de C++ ISIMA 2ème année : Forme canonique de Coplien, Redéfinition d'opérateurs et exceptions minimales

1. Exercice #1 : La classe vecteur simple

Le but de ce TP est de mettre en place la forme canonique de Coplien sur une classe nommée Vecteur et modélisant un tableau d'entiers. Trois attributs seront créés :

1.1 Implémentation de la forme canonique de Coplien

Rappelons que la forme canonique de Coplien nécessite les éléments suivants :

Constructeur par défaut
Celui-ci sera en fait un constructeur prenant la capacité du vecteur en paramètre avec une valeur par défaut.
Constructeur de recopie
Opérateur d'affectation
On pourra coder dans une méthode séparée (réfléchir sur son accessibilité) la partie commune à ces deux méthodes
Destructeur

1.2 Autres méthodes

1.2.1 Accès aux éléments du tableau

Une seule méthode est proposée pour accéder en écriture aux éléments du vecteur :

void push_back(int)
rajoute un élément dans le tableau après le dernier utilisé. L'exception "Depassement de capacité" sera levée si la capacité maximale est atteinte

Pour l'accès en lecture aux éléments du vecteur, seul l'opérateur [] sera proposé en version constante. Tout accès au delà de la taille (et donc, a fortiori, au dela de la capacité) déclenchera l'exception "En dehors des bornes".

1.2.2 Autre opération

Finalement, on proposera la redéfinition de l'opérateur de sortie sur flux (<<). Vous proposerez deux implémentations :

Afin de les distinguer, vous utilisez des directives de compilation conditionnelle (#ifdef).

Solution

1.3 Pour aller plus loin dans l'exercice