Bonjour à tous,

J'essaie de mettre en place un petit exemple pour m'initier à la POO. J'ai donc une classe qui se présente ainsi :

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 Duree
{
    public:
       Duree() : m_heures(0), m_minutes(0), m_secondes(0)
       {
       }
 
       Duree(int heures, int minutes, int secondes) : m_heures(heures), m_minutes(minutes), m_secondes(secondes)
       {
       }
   private:
       int m_minutes;
       int m_heures;
       int m_secondes;
};

Si je veux que l'utilisateur puisse construire un objet Duree en précisant 1, 2 ou 3 paramètres, suis-je obligé de créer autant de constructeurs que de formes possibles d'utilisation ou bien puis-je préciser des valeurs par défaut pour chaque attribut ?

Je crois qu'il est possible de le faire via le prototype, comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Duree(int heures = 0, int minutes = 0, int secondes = 0);
mais l'ensemble de mon code est pour cet exemple dans le même fichier source, donc je n'ai pas de prototypes.

Quelle est la solution dans ce cas ?

Et, petite question liée, est-il possible d'initialiser les attributs comme ceci ? :

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 Duree
{
    public:
       Duree() : m_heures(0), m_minutes(0), m_secondes(0)
       {
       }

       Duree(int heures, int minutes, int secondes) : m_heures(heures), m_minutes(minutes), m_secondes(secondes)
       {
       }
   private:
       int m_minutes = 0;
       int m_heures = 0;
       int m_secondes = 0;
};
Merci d'avance de vos éclairages

A++

Jean-Marc