#include <iostream>
using namespace std;

class A
{
public:
    virtual void foo() { cout << "A" << endl; }
};

class B : public A
{
public:
	virtual void foo() { cout << "B" << endl; }
};

int main()
{
	B b;
	b.foo(); //--> B
	
	A a = b;
	a.foo(); //--> A
	
	A& ra = b;
	ra.foo(); //--> B
	
	return 0x0;
}