2009-11-27 7 views
0

disons que j'ai 2 classesconstructeur comme argument par défaut

class B 
{ 
    B() { /* BLA BLA */ }; 
    B(int a) { /* BLA BLA */ }; 
    B(int a,int b) { /* BLA BLA */ }; 
} 

class A { 
public : 
    A(B par); 
} 

je me demandais comment puis-je appeler le constructeur de A avec par avoir un argument deafult, comme chacun des constructeurs B. (Bien sûr je voudrais voir 3 exemples, je ne pense pas tous d'exister ensemble)

grâce

Répondre

7

Vous pouvez faire quelque chose comme:

A(B par = B()) 
A(B par = B(1)) 
A(B par = B(1,2)) 

code complet comme par commentaire:

class B 
{ 
public: 
    B() { }; 
    B(int a) {}; 
    B(int a,int b) {}; 
}; 

class A { 
public : 
    A(B par = B()/* or B(1) or B(1,2) */); 

}; 
+0

cela fonctionne-t-il? – yesraaj

+0

Oui. [15 caractères ...] –

+2

curieux de connaître la raison pour laquelle DownVote ... Quelque chose ne va pas dans la réponse? – Naveen

0
A(B());//create a B object and pass it to A 
A(B(1)); 
A(B(1,2)); 

ou définir 3 constructeur différent A (mais cela ne me semble pas bon).

Questions connexes