1.如果父类定义的是普通virtual函数,
(1)父类必须提供一个实现
(2)子类如果不需要实现它,可以不在函数成员中列出来,或者类文件中列出来,不提供实现也可以;子类如果要实现它,则必须在函数成员中列出来
2.如果父类定义的是纯virtual函数
(1)如果子类仍是个抽象类,可以不声明它
(2)如果子类不是抽象类,则必须声明它,因为编译器需要用它来制作虚函数表
3.在子类列表中,函数前加virtual与否都可以,但google代码规范建议加virtual,因为这样可以明白看出它来自于继承.
4.如果想在父类的函数中调用某函数的子类的实现,那么这个函数必须为纯虚函数