Bonsoir à vous. J'ai besoin de votre aide. Regardons le code suivant:
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
29
30
31
32
33
34
35
36
#include <iostream>
#include <string>
using namespace std;
class Etudiant
{
private:
    string nom;
    string prenom;
    int age;
public:
    Etudiant(string n, string p, int a):
        nom(n),prenom(p),age(a){}
    void affiche()
    { cout<<nom<<" === "<<prenom<<" === "<<age<<endl;}
};
class Ecole
{
private:
    int nbr_de_classes;
    Etudiant membre;
public:
   Ecole(int ndc,string n,string p,int a):
        nbr_de_classes(ndc),membre(n,p,a){}
 
    void affiche()
    {
        cout<<nbr_de_classes<<endl;
        membre.affiche();
    }
 
};
int main()
{
   cout<<"Tout ce passe bien"<<endl;
    return 0;
}
Pourquoi ce nouveau constructeur d'initialisation de la classe Ecole ne marche pas?:
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
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <string>
using namespace std;
class Etudiant
{
private:
    string nom;
    string prenom;
    int age;
public:
    Etudiant(string n, string p, int a):
        nom(n),prenom(p),age(a){}
    void affiche()
    { cout<<nom<<" === "<<prenom<<" === "<<age<<endl;}
};
class Ecole
{
private:
    int nbr_de_classes;
    Etudiant membre;
public:
    Ecole(int ndc,Etudiant e):
    nbr_de_classes(ndc),membre.nom(e.nom),membre.prenom(e.prenom),membre.age(e.age){}
 
 
    void affiche()
    {
        cout<<nbr_de_classes<<endl;
        membre.affiche();
    }
 
};
int main()
{
   cout<<"Tout ce passe bien"<<endl;
    return 0;
}
Merci à vous