首页 > 代码库 > 纯虚函数
纯虚函数
1、纯虚函数
class Base{public: Base(){}; virtual ~Base(){};};
//类A是一个抽象类class A : public Base{public: A(){} virtual ~A(){} virtual void fun() = 0; //纯虚函数};class B : public A{public: B(){} virtual ~B(){} virtual void fun() { std::cout<<"B"<<std::endl; }};int main(){ //A a; //抽象类A不能实例化对象,编译器会报错 A *a = new B; a->fun(); B b; b.fun(); return 0;}
含有纯虚函数的类是抽象类,抽象类不能实例化对象。抽象类的派生类要实现纯虚函数,否则也是抽象类。一般抽象类是基类,也可以不是。
2、构造函数、析构函数中的虚函数
构造函数不能是虚函数,而且构造函数中的虚函数不起作用,因为若起作用可能会调用到子类,但是子类还没有生成。
析构函数一般是虚函数,因为这样才能保证delete掉想析构的对象,而且析构函数中虚函数不起作用,因为若起作用则可能会调用到已经析构的子类。
纯虚函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。