Let’s suppose a class is derived from two base classes
In this situation, the two base classes have functions that are with the same name say fun();
Guess what would happen? If the derived class object tries to call the base fun() by d.fun();
Of course, an error will generate
But why?
Because the compiler can’t figure out fun() of which base class you would like to call
Okay!
Now, the easy way to solve this problem is to use the scope resolution operator(::) to identify the desired fun() which you would like to call
That’s it!
derived d;
d.f();//an error will generate
d.base1::fun();//works
d.base2::fun();//works
Here base1 means first base class and base2 means second base class
To conclude, you can identify your desired fun() with scope resolution when there are many fun()available in different classes with the same name
Pretty effective right?
Leave a Reply