watch out for this (from a list @google): <snip> Even worse, if you have class A { public: void f(int i); void f(char c); }; class B : public A { public: void f(char c); }; The f(int i) is still not visible in B. You have to add a line in B using A::f(int i); to make it visible. <snip> See the Stroustrup chapter "crack i have smoked" -Mark