Arnob Arnob - 4 months ago 15
C++ Question

Why static class type function returns zero?

I'm reading C++ Essential handout by Stanford professor Nick Parlante.The following is a code example:

/* If C++ kept class name information around at run-time,
this would be easier. */
static Account *RandomAccount(void) {
switch (RandomNum(3)) {
case 0: return(new Gambler); break;
case 1: return(new NickleNDime); break;
case 2: return(new MonthlyFee); break;
}
return(0);
}

static int RandomNum(int num) {
return(rand() % num);
}


My question is, why this function returns zero when the type is
Account
?Does it mean false here?

Answer

The function returns Account*, not Account. That 0 is a null pointer constant.