TD 5 : chaînes de caractères, cartes à jouer

Chaînes de caractères

Nous souhaitons écrire ici une classe String qui se comporte comme une version très simplifiée de la classe std::string fournie par la librairie standard. Voici un exemple d'utilisation de cette classe :

#include <iostream>
#include "String.h"
 
int
main()
{
    String a;
    String b="bonjour";
    a=b+", comment ca va?";
    a+="... ca va bien.";
    std::cout << a << std::endl;
 
    for(size_t i=0;i<a.size();i++)
    {
        cout << a[i] << std::endl;
    }
    size_t pos=a.find("va");
    std::cout << pos << endl;
    a.replace(27, "mal, vivement les vacances");
    std::cout << a << std::endl;
    if(a<b)
    {
        std::cout << "a<b" << std::endl;
    }
}

Dans cet exercice, les fonctions de la bibliothèque C (strdup, strcat, …) ne devront pas être utilisées.

  • Dans ce programme, identifiez les éléments qui sont des String et ceux qui sont des char const *.
  • Identifiez et écrivez les constructeurs et le destructeur nécessaires pour la classe String.
  • Identifiez et écrivez les opérateurs nécessaires pour la classe String. Les opérateurs + et += pourront prendre un argument du type String const &, la conversion depuis un char const * se faisant automatiquement. Pourquoi ?
    • Implémentez les autres fonctions nécessaires.

Cartes à jouer

Implémentez une classe représentant une carte à jouer d'un jeu de 52 cartes. La classe devra contenir :

  • le rang de la carte (de l'as au roi);
  • la couleur de la carte (pique, cœur, carreau, trèfle);
  • les opérateurs d'incrémentation et de décrémentation pour passer à la carte de valeur immédiatement supérieure ou immédiatement inférieure;
  • des opérateurs de comparaison pour comparer les valeurs de deux cartes.

L'ordre de valeur des rangs va de l'as au roi, celui des couleurs est pique, cœur, carreau, trèfle. Utilisez des énumérations pour le rang et la valeur.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>