Recently, I found that below code is working, but I don't understand why.
Why can the compiler use classNameA::classNameA::variable to find the variable, but why not namespaceB::namespaceB::variable?
namespace Cool  
{  
    int a = 5;  
}
class Good    
{  
public:  
    const static int b = 10;  
};
int main()  
{  
    //std::cout << Cool::Cool::a <<std::endl; //why this line not working?  
    std::cout << Good::Good::Good::b << std::endl; // why can the compiler find the variable b?  
    return 0;   
}
 
    