I read an article explains why function and variable cannot have same name, most of those people says it's because if I try to get address of those things, compiler will not understand which I want, but in C++, overload function is valid, and if I try to get address of overloaded function, it will generate an error, so why not just generate an error while getting variable and function have same name, could anyone tell me why C++ standard not allowed it?