#include 
class A {};
class B : public A {};
void bar(const A &) { std::cout << "A"; }
void bar(const B &) { std::cout << "B"; }
int main()
{
    A a;
    B b;
    A &ref_to_a = a;
    A &ref_to_b = b;
    bar(a);
    bar(b);
    bar(ref_to_a);
    bar(ref_to_b);
    return 0;
}