// Le fichier .h est destiné à être inclus dans un .cc. Afin d'éviter
// de l'inclure plusieurs fois par erreur, oùm dans le cas d'inclusions
// imbriquées, on le verrouille pour que seule la première directive
// #include concernant ce fichier se solde par une recopie de son
// contenu. C'est le role du #ifndef ... #define ... #end ici.

#ifndef PERSONNE_H
#define PERSONNE_H

#include <string> // On a besoin du type string (std::string en fait),
		  // donc on inclut le .h standard... qui n'a plus
		  // l'extension .h d'ailleurs, mais c'est bien un
		  // fichier comme un autre.
#include <list>


class Personne {
private:

  std::string* nom;
  std::string* prenom;

public:

  Personne(std::string n, std::string pn); // pas de &, donc les arguments seront copiés... et détruits en fin de fonction.
  virtual ~Personne(void); // Le destructeur, mettez virtual sans vous poser de questions.

  // Cette méthode ajoute les attributs "nom=..." et "prenom=..." dans
  // une liste, non copiée par la fonction. Mettez virtual sur toutes
  // vos méthodes (sauf constructeur) sans réfléchir.
  virtual void ListeAttributs(std::list<std::string*>& attr); 
};



#endif