Bonjour,

Je n'arrive pas à trouver la bonne syntaxe pour appeler un constructeur avec paramètre dans un constructeur d'une autre classe ... voici un exemple de code pour expliquer mon PB :

La première classe A possède un constructeur par paramètre qui prend en entrée deux pointeurs sur des objets de classe C et D
et également un constructeur sans paramètre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
class A {
 
public:
 
A( C * param1, D * param2);
A();
virtual ~A();
};

la classe B possède un attribut privé "toto" qui est une instance de la classe A
le constructeur de B prend également des pointeurs sur C et D en paramètre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class B {
 
private :
      A toto;
 
public:
 
B( C * param1, D * param2);
virtual ~B();
};
le problème apparait lors de l'écriture du constructeur de la classe B pour instancier correctement la variable "toto"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
B::B( C * param1, D * param2)
{
        toto(param1, param2);  // error: type 'A' does not provide a call operator
}
C'est là que je n'utilise pas la bonne syntaxe
j'ai également essayé ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
B::B( C * param1, D * param2)
{
        A toto(param1, param2);
}
mais dans ce cas c'est le constructeur A(); qui est exécuté par mon programme ...

Je n'arrive pas à trouver l'erreur (qui est sans doute évidente)

merci pour votre aide