/* personne.c++ */

#include <personne.h>
#include <cstdlib>

personne::personne(std::string p, std::string n, int a, sexe_t s) :
	prenom(p),
	nom(n),
	age(a),
	sexe(s)
{
	sexe=(s<2) ? s : (sexe_t)(2*((double)rand()/RAND_MAX));
	std::cout << "Création d'un" << (sexe ? "e femme" : " homme");
	std::cout << " : " << prenom << " " << nom << endl;
	std::cout << " *  " << age << " ans" << endl;
}

personne::personne(const personne& p) :
	nom(p.nom),
	prenom(p.prenom),
	age(0),
	sexe(p.sexe)
{
	std::cout << "Clonage de " << p.prenom << " " << p.nom << " " << endl;
}

personne::~personne() {
	std::cout << "Destruction de ";
	std::cout << prenom << " " << nom << endl;
	std::cout << " *  " << age << " ans" << endl;
}

personne* personne::operator*(const int& nb) const {
	if (nb<=0) 
		return NULL;

	if (nb==1)
		return new personne(*this);

	return new personne[nb](*this);
}

personne* operator*(const int& nb, const personne& p) {
	return p*nb;
};
