a) the `print(5)` line calls White::print the `print(k-1)` line calls itself b) the line is allowed by itself, however since we define a `void print(int k)` function there is no way to distinguish which one is called. thus it becomes illegal. Including it in main would be OK