虚函数和抽象函数一般什么时候会用到

新手上路,请多包涵

虚函数和抽象函数一般什么时候会用到

阅读 2.3k
1 个回答
class A {
public:
    virtual void func() {  // 虚函数
        cout << "A::func" << endl;
    }
};

class B {
public:
    virtual void func() = 0;  // 纯虚函数
}
  • 虚函数使用场景:运行时多态

    • 在继承树中,可发生运行时多态行为(同一接口,运行时不同表现)
    • 当子类需要重新实现父类某一功能时,可重写虚函数覆盖父类实现
  • 抽象函数(纯虚函数)使用场景:接口

    • 拥有纯虚函数的类称为纯虚类,只有类声明,不能创建对象
    • 对应的子类必须覆盖实现父类纯虚函数,否则也不能创建对象(形成了使用约束)
    • 顶层父类定义好接口(纯虚函数)原型,不同子类继承实现函数定义
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题