#include <iostream>
class A
{
private:
char data;
public:
A(){data = 'A';};
virtual void Show()
{
std::cout << data << std::endl;
};
virtual void Display()
{
std::cout << 'A' << std::endl;
}
};
class B
{
private:
char data;
public:
B(){data = 'B';};
virtual void Show()
{
std::cout << data << std::endl;
};
virtual void Display()
{
std::cout << 'B' << std::endl;
}
};
class C
{
private:
char data;
public:
C(){data = 'C';};
void Print()
{
std::cout << "this is class C printing" << std::endl;
};
};
class D: public A, public B, public C
{
private:
char data;
public:
D(){data = 'D';};
virtual void Show()
{
std::cout << data << std::endl;
};
virtual void Display()
{
std::cout << 'D' << std::endl;
};
};
int
main ( int argc, char *argv[] )
{
D *d = new D;
A *a = (A*)d;
B *b = (B*)d;
d->Show();
d->Print();
a->Show();
b->Show();
d->Display();
a->Display();
b->Display();
return 0;
} /* ---------- end of function main ---------- */