class A{};
class B{};
class C: public B {};
namespace D{
int foo (A) { return 11; }
int foo (C) { return 12; }
}
int main()
{
A a;
B b;
C c;
D::foo (a);
// D::foo (b);
D::foo (c);
return 0;