一、问题
多态的作用?
当父类指针指向子类对象时,会根据虚函数表调用子类的虚函数
重写的作用?
当父类指针指向子类对象时,由于指针类型为父类,调用的依旧是父类的非虚函数
当子类指针指向子类对象时,由于指针类型为子类,调用的是子类的非虚函数
二、代码验证
class Base
{
public:
Base()
{
}
void function() {
cout << "base: not virtual" << endl;
}
virtual void Function()
{
cout << "base: virtual" << endl;
}
};
class A : public Base
{
public:
A()
{
}
void function() {
cout << "A: not virtual" << endl;
}
void Function(){
cout << "A: virtual" << endl;
}
};
int main()
{
Base *b = new A;
b->function();
b->Function();
}