-
虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载
-
纯虚函数只是在基类中不需要写函数实现
class A {
public:
A();
virtual ~A();
void f1();
virtual void f2();
virtual void f3()=0;
};
class B:public A{
public:
B();
virtual ~B();
void f1();
virtual void f2();
virtual void f3();
};
8
int main(int argc,char * argv[]) {
A *m_j = new B();
m_j -> f1();
m_j -> f2();
m_j -> f3();
delete m_j;
return 0;
}
m_j是用A来声明,所以m_j->f1()方法,会调用A类f1()方法
f2()子类改写了父类的方法。有virtual的,会调用m_j中真实对象的方法。
f3()与f2()一样,只是在基类中不需要写函数实现.