Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
Nov 27, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Qualified Calls

A function call such as the following:


is a qualified call. Qualified disambiguate function names. They are needed, for instance, in a class that inherits from several base classes, each of which having functions with identical names. Consider:

struct B1
 int f();
struct B2
 int f();
class D: public B1, public B2  
public: // f() is ambiguous in class D
 int g() {B2::f();} //qualified call resolves the right f()

Another use of qualified calls is to bypass the virtual call resolution mechanism. Suppose you have a virtual function f() in a base class that is overridden in a derived class. To invoke the base's f() in the derived class, you need to use the qualified call base::f(). In this case, the call is resolved statically, not dynamically.

Danny Kalev
Thanks for your registration, follow us on our social networks to keep up-to-date