龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC++深入详解:纯虚函数

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
将breathe()函数申明为纯虚函数,结果如例2-18所示。 例2-18 class animal { public: void eat() { cout"animal eat"endl; } void sleep() { cout"animal sleep"endl; } virtual void breathe() = 0; }; 纯虚函数是指被标明为不具

  将breathe()函数申明为纯虚函数,结果如例2-18所示。

  例2-18

  class animal
  {
  public:
    void eat()
    {
      cout<<"animal eat"<<endl;
    }
    void sleep()
    {
      cout<<"animal sleep"<<endl;
    }
    virtual void breathe() = 0;
  };

  纯虚函数是指被标明为不具体实现的虚成员函数(注意:纯虚函数也可以有函数体,但这种提供函数体的用法很少见)。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。在派生类中必须完全实现基类的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。

  纯虚函数多用在一些方法行为的设计上。在设计基类时,不太好确定或将来的行为多种多样,而此行为又是必需的,我们就可以在基类的设计中,以纯虚函数来声明此种行为,而不具体实现它。

  注意:C++的多态性是由虚函数来实现的,而不是纯虚函数。在子类中如果有对基类虚函数的覆盖定义,无论该覆盖定义是否有virtual关键字,都是虚函数。

精彩图集

赞助商链接