#include<iostream>
using namespace std;
class A
{
public:
void foo()
{
printf("1\n");
}
virtual void fun()
{
printf("2\n");
}
};
class B : public A
{
public:
void foo()
{
printf("3\n");
}
void fun()
{
printf("4\n");
}
};
int main(void)
{
/* A a;
B b;
A *p = &a;
p->foo();
p->fun();
p = &b;
p->foo();
p->fun();*/
/*A*pa=new B();
pa->foo();
pa->fun();
pa->A::fun();
delete pa;*/
B b;
b.foo();
b.fun();
b.A::foo();
b.A::fun();
return 0;
}