纯虚函数与抽象类

来源:互联网 发布:js复选框全选 编辑:程序博客网 时间:2024/05/17 05:57

有时我们仅仅想让基类表示一种抽象的概念,而不与具体的事物相联系

如:我在基类中定义一个多边形的函数Shape(),但是我并不想让它指向某一个具体的多边形(三角形呀,四边形呀),我只想让它指明多边形都共有的特征(都有两条以上的边构成,都有角。。。),然后在它的派生类中在对对变形进行具体化

这时便用到了纯虚函数:

纯虚函数的定义方式:

class 类名

{

   ...

  virtual   函数类型  函数名(参数表)=0;

  ...

}

看下面的一个程序

#include<iostream>
using namespace std;
class Duobian
{
   public :
     virtual void shape()=0;
};
class Triangle:public Duobian
{
   public:
     void shape()
     {
         cout<<"这是一个三角形"<<endl;
     }
};
class Square:public Duobian
{
    public :
      void shape()
      {
          cout<<"这是一个四边形"<<endl;
      }
} ;
int main()
{
    Duobian *d;
    Triangle t;
    Square s;
    d=&t;
    d->shape();
    d=&s;
    d->shape();
    return 0;
}
这就是纯虚函数最简单的用法

但是需要注意的是,纯虚函数是在基类中说明的一个函数,它在该基类中没有定义,但要求它在自己的派生类中必须定义自己的版本或重新说明为纯虚函数。

抽象类:如果一个类最少有一个纯虚函数就称该类为抽象类

 

0 0
原创粉丝点击