I can do this
extern int i; extern int i;
But I can\'t do the same with a class
class A { .. } class A { .. }
But in the first case ther is no contradiction.
extern int i; extern double i;
won't work either. So if you create class A to times it wouldn't be possible to decide who A is.