Say I have a class definition:
class CustomClass {
int member;
};
Why is the following variable definition compiling and working correctly:
CustomClass CustomClass; // the variable is properly constructed
Should't this confuse the compiler and cause it to indicate an error?
Class names and variable names occupy two separate namespaces. The compiler is able to figure out that the first CustomClass
is a type and the second CustomClass
is a variable name.