![]() |
VOOZH | about |
In C++, naming conflict occurs when two identifiers in the same scope have the same name and the compiler cannot infer which identifier to refer to when it is mentioned in the program.
In this article, we will discuss what are name conflicts, what are its causes, and how to resolve the name conflict in C++.
As discussed in the introduction, the name conflict occurs when two or more identifiers have the same name in the same scope.
For example, look at the following code snippet:
Output
main.cpp: In function ‘int main()’:
main.cpp:10:12: error: conflicting declaration ‘double x’
10 | double x = 20.5;
| ^
main.cpp:7:9: note: previous declaration as ‘int x’
7 | int x = 10;
| ^
Above is not the only case of this error, it can occurs in many other cases. Below are some common cases of this error:
We can easily revolve the name conflict error by renaming the identifier which is causing it. But if you really need to use the same name, here are some other methods to do that:
Namespace feature was introduced in C++ exactly for resolving the name conflicts. This feature provide a separate space of each idenfier with same name and we can access them using its namespace.
Example
Student 1 Details: Name: John Age: 25 Student 2 Details: Name: Ravi Age: 30 Roll: 25
This method is used to resolve the name conflict in the case where the local variable and global variable have same name. We just access the global variable using scope resolution operator.
Example
Local x: 20 Global x: 10