#include<iostream>
using namespace std;
class A{
public:
void fun1(int i, int j){
cout << "A::fun1() : " << i << " " << j << endl;
}
void fun2(int i){
cout << "A::fun1() : " << i << endl;
}
};
class B : public A{
public:
void fun2(int i){
cout << "B::fun1() : " << i << endl;
}
};
int main(){
B b;
A *aa;//没有virtual的情况下,声明的指针类型即为所指类型,即使后来基类指针指向派生类
// 但没有虚表的情况下,此时该类指针指向不变
aa = &b;
B* bb;
bb = &b;
aa->fun2(1.5);//A::fun1() : 1
bb->fun2(1);//B::fun1() : 1
b.fun2(1.5);//B::fun1() : 1
system("pause");
return 0;
}