#include <iostream>
using namespace std;
class A
{
public:
A(){
cout<<"A"<<endl;
}
~A(){}
virtual void func1()
{
cout<<"only in A"<<endl;
}
virtual void func2()
{
cout<<"virtual in A"<<endl;
}
void func3()
{
cout<<"non virtual in A"<<endl;
}
};
class B:public A
{
public:
B(){
cout<<"B"<<endl;
}
~B(){}
void func2()
{
cout<<"virtual in B"<<endl;
}
void func3()
{
cout<<"non virtual in B"<<endl;
}
};
int main()
{
B *b = new B();
A *a = (A *)b;
b->func1();
b->func2();
b->func3();
a->func1();
a->func2();
a->func3();
getchar();
return 0;
}
输出结果: