#include <iostream>
#include <string>

using namespace std;

class A
{
public:
    virtual string getName() { return "A"; }
};

class B: public A
{
public:
    virtual string getName() { return "B"; }
};

class C: public B
{
public:
    virtual string getName() { return "C"; }
};

class D: public C
{
public:
    virtual string getName() { return "D"; }
};

int main()
{
    C c;
    A& bazowa = c;
    cout << "bazowa jest " << bazowa.getName() << '\n';
// alternatywnie:
//    A *bazowa = &c;
//    cout << "*bazowa jest " << bazowa -> getName() << '\n';

    return 0;
}
