Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

In C++, when the name of a class and a variable are the same in the same scope, the priority is given to the variable. This is because local variables have a higher priority than class names.

For example, consider the following code:

class MyClass {
   // class definition
};

int main() {
   MyClass MyClass; // variable declaration with the same name as class
   // code using the variable
}

In this case, the name "MyClass" refers to the variable and not the class, so any reference to "MyClass" within the code will refer to the variable.

If you need to refer to the class, you can use the scope resolution operator (::) to specify that you are referring to the class and not the variable. For example:

class MyClass {
   // class definition
};

int main() {
   MyClass MyClass; // variable declaration with the same name as class
   ::MyClass obj;   // use scope resolution operator to refer to the class
   // code using the variable and the class object
}

In this case, the "::MyClass" refers explicitly to the class, while "MyClass" refers to the variable.