Ask Your Question
1

When the name of a class and a variable are the same in the same scope in c++, how can the priority be determined?

asked 2022-10-28 11:00:00 +0000

huitzilopochtli gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2022-08-29 07:00:00 +0000

qstack gravatar image

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.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2022-10-28 11:00:00 +0000

Seen: 7 times

Last updated: Aug 29 '22