Understanding Member Function Lookup Rules

Function lookup stops at a scope. In the case of class hierarchies, this means that a function?either virtual or not?declared in a derived class can hide a virtual member function with the same name in its base class, even if the functions’ signatures differ. For example:

 
   class B   {  public:     virtual void f(int);  };  class D : public B   {  public:     void f(void*);  };  D d ;  d.f(7) //#1 compilation error

The statement d.f(7) is in error although class B has a function called f() which takes int. To see why this is an error, let

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: