Bonjour,

voici une question que je me pose sur un projet actuel.
Je dois créer deux classes variables : une classe "VariableInteger" et une classe "VariableDouble" qui doivent, outre contenir chacune leur attribut de la variable (int pour "VariableInteger" et double pour "VariableDouble"), aussi contenir un attribut du nom de la variable (std::string).

Je pense à deux manières pour définir cela :

1 : je crée une classe mère "Variable" ne contenant comme attribut que le nom de la variable, puis je crée les deux classes "VariableInteger" et "VariableDouble" qui héritent de la classe "Variable"
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
 
class Variable
{
	std::string m_name;
 
	/* les méthodes qui vont bien */
};
 
class VariableInteger : public Variable
{
	int m_value;
 
	/* les méthodes qui vont bien */
};
 
class VariableDouble : public Variable
{
	double m_value;
 
	/* les méthodes qui vont bien */
};
2 : je crée uniquement les deux classes "VariableInteger" et "VariableDouble" qui ont chacune leur attribut de la variable (int pour "VariableInteger" et double pour "VariableDouble") ainsi que l'attribut supplémentaire du nom de la variable
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
 
class VariableInteger
{
	int m_value;
	std::string m_name;
 
	/* les méthodes qui vont bien */
};
 
class VariableDouble
{
	double m_value;
	std::string m_name;
 
	/* les méthodes qui vont bien */
};
Je ne vois pas spécifiquement la différence fondamentale (lors de l'exécution finale du logiciel créé) entre ces deux manières et je n'ai pas trouvé de réponse précise à cette question.

Merci beaucoup.