#include class A { private: public: void Foo() const {std::cout << "A::Foo" << std::endl;} }; class B { private: void Foo() const {std::cout << "B::Foo" << std::endl;} public: }; int main() { A a; B b; a.Foo(); b.Foo(); return 0; }