Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

Qualified Calls

A function call such as the following:

 
classname::funcname();

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
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap