码迷,mamicode.com
首页 > 其他好文 > 详细

纯虚函数

时间:2014-09-12 14:46:13      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   strong   div   sp   log   on   c   

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掉想析构的对象,而且析构函数中虚函数不起作用,因为若起作用则可能会调用到已经析构的子类。

纯虚函数

标签:style   blog   color   strong   div   sp   log   on   c   

原文地址:http://www.cnblogs.com/thinknothing/p/3968241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!