Bonjour,

Je suis en plein apprentissage sur la programmation c++ et aujourd'hui j'ai un soucis que je vous soumet:
En effet, j'ai crée une classe Commercial qui hérite de la classe Employé.
Et 2 autres classes Vendeur et Représentant qui héritent de la classe Commercial et j'ai la méthode double calculer_salaire() const
Cette méthode doit me retourner:

Pour le vendeur: (0.2*chiffre d'affaire) + 400
Pour le représentant: (0.2*chiffre d'affaire) + 800

Ma question est de savoir comment faire pour ne pas avoir ces valeurs de 400 et 800 en dur(qui correspondent à la majoration). J'ai pensé pour cela a définir une variable statique dans les classes vendeur et représentant:

Vendeur.hpp:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#ifndef VENDEUR_HPP
#define VENDEUR_HPP
 
#include "Commercial.hpp"
#include <iostream>
#include <string>
using namespace std;
 
class Vendeur : public Commercial {
public:
	Vendeur(string nom, string prenom, double age, unsigned int date, double CA)
		: Commercial(nom, prenom, age, date, CA) {}
	string get_nom() const;
	double calculer_salaire();
	~Vendeur() {}
private:
	static double majoration;
};
 
#endif
 
 
double Vendeur::majoration(400);
 
double Vendeur::calculer_salaire() {
	return (.2 * chiffre_affaire) + majoration;
}
est-ce la bonne façon sachant que je fais la même chose pour la classe Représentant ou alors faut il plutot la définir dans la classe Commercial?