Comme indiqué dans les autres réponses - les deux seront toujours NULL après l'appel. Cependant, il y a deux solutions possibles à ce problème:
1) références
void assignObject(ClassA*& pa, ClassB*& pb)
{
pa = new ClassA;
pb = new ClassB;
}
ClassA* pa = NULL;
ClassA* pb = NULL;
assignObject(pa, pb); // both will be assigned as expected.
2) pointeurs
void assignObject(ClassA** pa, ClassB** pb)
{
assert(pa != NULL); assert(pb != NULL);
*pa = new ClassA;
*pb = new ClassB;
}
ClassA* pa = NULL;
ClassA* pb = NULL;
assignObject(&pa, &pb); // both will be assigned as expected.
La plupart des programmeurs choisiraient probablement des références parce qu'alors ils n » t besoin d'affirmer quoi que ce soit (les références ne peuvent jamais être NULL).
comment passer comme pointeur – yesraaj
Peut-être que vous devriez changer la question ...? – Roddy