Как указано в других ответах - оба будут равны NULL после вызова. Однако есть два возможных решения этой проблемы:
1) ссылки
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) указатели
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.
Большинство программистов, вероятно, выбрали бы ссылки, потому что тогда им не нужно ничего утверждать (ссылки никогда не могут быть NULL).