1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
class AgenceLocale {
string nom;
Region& nomR;pourquoi & ?Paramètre passé par référence
int nbEmp;
Employe employe[nbEmp];il n'y a qu'un employé dans l'agence ?Non, c'est un tableau si c'est ce que tu veux dire exact
list<Client> c;pas de * ? Je ne comprends pas pourquoi il faudrait un * pour la déclaration de liste?
list<Vente> v;pas de * ?
public:
AgenceLocale(string n="", Region& r, int nb = 0):nom(n), nomR(r), nbEmp(nb) {
employe = new Employe();
c = *new list<Client>();*new ?
v = *new list<Vente>();* new ?
}
AgenceLocale(const AgenceLocale& copie) {maladroit de nommer le parametre "copie"
this->nom = copie.nom;les this->xxx ne sont pas optionnel
this->nomR = copie.nomR;
this->nbEmp = copie.nbEmp;
this->employe = copie.employe;
this->employe = new Employe[copie.nbEmp];argh !!Sûrement quelque chose qui cloche? ^^
for(int i = 0; i < nbEmp; i++) {
employe[i] = copie.employe[i];
}
c = copie.c;révise les pointeurs, c'est juste pour éviter ça qu'n fait des cTor copieD'accord, mais pourrais-tu m'expliquer quelle est l'erreur ici?
v = copie.v;
}
//4.2 Oui, car l'opérateur d'affection par défaut n'est pas suffisant si on utilise des pointeurs
void addEmploye(string nom, int id) {
Employe * e = new Employe(nom, id);
employe[nbEmp] = *e;
nbEmp++;
}
Vente AgenceLocale::operator[](int i) const {
return v[i];
}
ostream& operator<<(ostream& out, Client& c) {
for(list<Clien*> ::iterator it=lclient.begin(); it != lclient.endl();++it) {
out << it->c.nom << endl;
}
}
public float calculerSalaire() {
???retourner la somme des salaires de tous les emplyés (parcours de liste)
float somme = 0.0;
for(list<Employe*>::iterator it = lemploye.begin(); it != lemploye.end();++it) {
somme += it->calculerSalaire();
}
return somme;
}
public float salaireCommerciaux() {
???idem
float somme = 0.0;
for(list<Commercial*>::iterator it = lcommercial.begin(); it != lcommercial.end();++it) {
somme += it->calculerSalaire();
}
return somme;
}
} |
Partager