M3103 – TP2 Exercice 1

Dans le fichier node.hpp, créer la classe générique CNode :

template 
class CNode
{
private:
    T m_Data;
    CNode* m_Next;
public:
    //constructor
    CNode ();
    //destructor
    ~CNode ();

    //getter / setter
    TODO
};
  1. Faites en sorte d’avoir un constructeur par défaut;
  2. Ecrivez le profil des getter et des setter;
  3. Pour cet exercice, faites en sorte que le destructeur affiche la contenu de la case supprimée (ce dernier est supposé être injectable dans le flux écran);
  4. Ecrivez le corps de toutes les fonctions.

Tester votre classe avec le code suivant :

void ListeSimple (void)
{
    std::cout << "ListeSimple : \n\n";

    CNode* Tete = nullptr;

    // Le dernier element cree est toujours le premier de la liste


    for (unsigned i (0); i < 5; ) {
        Tete = new CNode (i++, Tete);
        std::cout << Tete << endl;
    }

    for (CNode* Ptr (Tete); Ptr; Ptr = Ptr->GetNextNode ())
        std::cout << Ptr->GetData() << "; ";

    std::cout << '\n';

    // Dans cette version, le destructeur de C1Link detruit son
    //   suivant donc la destruction de la liste est recursive

    delete Tete;

}// ListeSimple ()