依法编程 Autocodes
欢迎各位小伙伴关注”依法编程“,一起交流
[h3]一、基本概念[/h3]1、纯虚函数是一个在基类中声明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本;
2、纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分);
3、纯虚函数声明形式:
virtual 类型 函数名(参数表)=0;
4、一个具有纯虚函数的基类称为抽象类;
[h3]二、抽象类注意事项[/h3]#include
using namespace std;
//抽象类
class Figure
{
public:
void set_dim(double _x=0,double _y=0)
{
this->x=_x;
this->y=_y;
}
//纯虚函数
virtual void show_area()=0;
protected:
double x,y;
private:
};
//Figure func()//错误,抽象类不能作为函数返回类型
//{}
//void func(Figure figure)//错误,抽象类不能作为函数参数类型
//{}
Figure& func(Figure& figure)//正确,可以声明抽象类的引用
{//需要返回一个对象}
int main()
{
//Figure figure;//错误,抽象类不能建立对象
Figure *p;//正确,可以声明抽象类的指针
system("pause");
return 0;
}
看上面的程序,我们可以总计以下几点:
【1】抽象类不能建立对象;
【2】抽象类不能作为函数返回类型;
【3】抽象类不能作为函数参数类型;
【4】可以声明抽象类的指针;
【5】可以声明抽象类的引用;
[h3]三、抽象类程序案例[/h3]#include
using namespace std;
//抽象类
class Figure
{
public:
//纯虚函数
virtual void show_area()=0;
protected:
private:
};
//继承一
class Triangle:public Figure
{
public:
Triangle(double _x=0,double _y=0)
{
this->x=_x;
this->y=_y;
}
void show_area()
{
cout |
|