#include "Artisan.h" 



Artisan::Artisan(std::string n, std::string pn, std::string m) 
  : Personne(n,pn) // c'est le super de Java
{
  // Pas besoin d'allouer la mémoire pour metier, ce n'est pas une
  // référence vu que je n'ai pas écrit std::string* mais std::string
  // dans Artisan.h. Ce n'est plus le comportement de Java, il y a
  // plein d'allocations et de désallocations implicites.
  metier = m; // L'affectation se passe bien.

  // destruction de n,pn, m.
}

Artisan::~Artisan(void) {
  // Le destructeur de la classe Personne est appelé implicitement
  // (c'est pour ca qu'il faut mettre virtual devant les
  // destructeurs...)

  // Rien à faire pour métier. Ce n'est pas une référence, il sera
  // libéré automatiquement lors de la destruction de l'instance.
}


void Artisan::ListeAttributs(std::list<std::string*>& attr) {
  // Rappelons ListeAttributs de la classe mère. Pas de super en C++.
  std::string* s;

  Personne::ListeAttributs(attr); 
  
  
  s = new std::string("metier = ");
  *s += metier; // pas besoin de mettre *metier, metier n'est pas une
		// référence, donc il est prêt à l'emploi pour les
		// opérateurs.
  attr.push_back(s);

}