class A { public: virtual void func() { // 虚函数 cout << "A::func" << endl; } }; class B { public: virtual void func() = 0; // 纯虚函数 }虚函数使用场景:运行时多态在继承树中,可发生运行时多态行为(同一接口,运行时不同表现)当子类需要重新实现父类某一功能时,可重写虚函数覆盖父类实现抽象函数(纯虚函数)使用场景:接口 拥有纯虚函数的类称为纯虚类,只有类声明,不能创建对象对应的子类必须覆盖实现父类纯虚函数,否则也不能创建对象(形成了使用约束)顶层父类定义好接口(纯虚函数)原型,不同子类继承实现函数定义
虚函数使用场景:运行时多态
抽象函数(纯虚函数)使用场景:接口