a way in c++ to hide a specific function

lurscher picture lurscher · Feb 5, 2011 · Viewed 24k times · Source

i have an inheritance struct A : public B, i want to hide individual functions from B, is this possible?

i know the opposite is possible using using BMethod in the A declaration.

cheers

Answer

Eugen Constantin Dinca picture Eugen Constantin Dinca · Feb 5, 2011

If you want to selectively hide functions from B it does not make much sense to use public inheritance in the first place.
Use private inheritance & selectively bring methods from B into the scope of A:

struct B{
   void method1(){};
   void method2(){};
};
struct A : private B{
   using B::method1;
};

A a;
a.method1();
a.method2(); //error method2 is not accesible