Bonjour,
je suis un debutant en C++ et j'aimerais avoir votre aide sur ce tp que je dois rendre aujourdhui!
1 Partie I
1.1 Exercice 1
Développer une classe String avec deux attributs privés : un pointeur sur un tableau de caractères et
un entier représentant la taille de la chaîne de caractères.
Il faut offrir deux constructeurs :
– le constructeur sans paramètre : la chaîne de caractères est alors vide (pointeur nul et taille égale
à 0) ;
– un constructeur avec un paramètre de type tableau de caractères dont la dernière case contient 0.
Le tableau défini dans la classe String ne doit contenir que les caractères de la chaîne. Le caractère
de fin de chaîne ne doit pas être utilisé.
1.2 Exercice 2
Ecrire le destructeur. Ce dernier doit libérer la mémoire allouée dans le constructeur.
1.3 Exercice 3
Développer des méthodes publiques d’accès et d’affichage de String :
– une méthode print qui affiche dans la console la chaîne de caractères ;
– une méthode qui retourne le nombre de caractères de la chaîne ;
– une méthode qui retourne le ième caractère de la chaîne (si i est supérieur à la taille de la chaîne
alors la méthode retourne un espace).
1
1.4 Exercice 4
Développer une méthode de concaténation de deux chaînes de caractères. Cette méthode aura l’entête
suivante : String concat(String& s) ; L’objet de type String retourné par la méthode est la chaîne résultante
de la concaténation.
1.5 Exercice 5
Ecrire un exemple qui présente :
1. la déclaration d’une variable s1 de type String à l’aide du constructeur par défaut ;
2. la déclaration d’une variable s2 de type pointeur sur une String à l’aide du constructeur à un
paramètre (la valeur “bonjour” sera passée en paramètre) ;
3. la déclaration d’une variable s3 de type String à l’aide du constructeur prenant en paramètre l’objet
déclaré en (2) ;
4. la déclaration d’une variable s4 de type String initialisée par la chaîne constante “à tous” ;
5. l’affectation de la variable déclarée en (1) par la variable déclarée en (3) ;
6. la déclaration d’une variable s5 de type référence sur un objet de type String ; cette variable
référencera la variable déclarée en (4) ;
7. la déclaration d’une variable s6 de type String initialisée par le résultat de la concaténation de la
chaîne déclarée en (2) et en (5) ;
Commentez votre code afin d’expliquer ce qu’il se passe lors de chacune des instructions. Pour faciliter
la compréhension des mécanismes, placez un affichage dans les différents constructeurs et dans le
destructeur et des affichages du contenu des différentes variables créées.
Ecrire les instructions nécessaires à la bonne terminaison de votre programme (par exemple, désallocation
mémoire).
Que se passe-t-il ? Commentez votre code avec la réponse à cette question.
1.6 Exercice 6
Ecrire le constructeur par recopie et la surcharge de l’opérateur =.
Quelles sont les conséquences ? Commentez votre code en indiquant les changements de comportements
des instructions de la question 5.
1.7 Exercice 7
Que se passe-t-il si la méthode qui retourne le ième caractère retourne une référence sur un char ?
Que peut-on faire avec cette nouvelle méthode ? Commentez un exemple pertinent.
Partager