#include <iostream>
using namespace std;
struct B{
public:
void display(void) const {
cout << "B's display." << endl;
}
virtual void vdisplay(void) const {
cout << "B's vdisplay." << endl;
}
void hiddendisplay(void) const {
cout << "F*ck who hid me" << endl;
}
};
struct D : private B {
public:
void display(void) const {
cout << "non-virtual D's display" << endl;
}
void vdisplay(void) const {
cout << "D!" << endl;
}
};
int main(void){
B *b = new B();
b->display();
b->vdisplay();
b->hiddendisplay();
delete(b);
D *d = new D();
d->display();
d->vdisplay();
d->hiddendisplay();
delete(d);
return 0;
}