语法上,在成员函数前加上virtual 关键字,就成了虚函数
非虚函数:不希望子类重新定义(覆写override)父类的函数
虚函数:希望派生类覆写父类,且父类已经对该函数有定义
纯虚函数:希望子类一定要覆写父类该函数,父类中没有定义该函数(只是声明)
Template Method(设计模式-模板模式)
定义一个操作中算法的骨架,而将一些操作延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构,即可重定义该算法的某些特定步骤。(GOF: 《设计模式》)
父类CDocument中的OnFileOpen函数会调用Serialize(),而Serialize(),在父类中是虚函数,具体实现根据子类CMyDoc中覆写的Serialize()实现。