C++笔记九十一:纯虚函数和抽象类

论坛 期权论坛 期权     
依法编程   2019-7-20 19:59   2274   0
依法编程 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
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:20
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP