博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++抽象类
阅读量:3527 次
发布时间:2019-05-20

本文共 865 字,大约阅读时间需要 2 分钟。

如果声明了一个类,一般可以用它定义对象。但是在面对对象程序设计中,往往有一些类,它们不用来生成对象。定义这些类的唯一目的就是用它作为基类去建立派生类。

抽象类是为了抽象和设计的目的而建立的,处于继承层次结构的上层。

具体类是能够建立对象的类。

抽象类的规定

(1)抽象类只能用作其他类的基类,不能建立抽象类对象。

(2)抽象类不能用作参数类型、函数返回类型或显式转换的类型。

(3)可以定义指向抽象类的指针和引用,此指针可以指向它的派生类,进而实现多态性。

如果在抽象类所派生出的新类中对基类的所有纯虚函数进行了定义,那么这些函数就被赋予了功能可以被调用。这个派生类就不是抽象类,而是可以用来定义对象的具体类。如果在派生类中没有对所有纯虚函数进行定义,则此派生类仍然是抽象类,不能用来定义对象。

虽然抽象类不能定义对象,但是可以定义指向抽象类数据的指针变量。当派生类称为具体类之后,就可以用这种指针指向派生类对象,然后通过该指针调用虚函数,实现多态性的操作。

#include
using namespace std; const double PI=3.14159; class Shapes //抽象类 { protected: int x, y; public: void setvalue(int d, int w=0){x=d;y=w;} virtual void disp()=0;//纯虚函数 }; class Square:public Shapes { public: void disp(){ cout<<"矩形面积:"<
<
setvalue(10, 5); ptr[0]->disp(); ptr[1] = &c1; ptr[1]->setvalue(10); ptr[1]->disp(); return 0; }

转载地址:http://slkhj.baihongyu.com/

你可能感兴趣的文章
Powers of two(multiset的运用)
查看>>
并查集入门(普通并查集+带删除并查集+关系并查集)
查看>>
吉首大学第八届“新星杯”大学生程序设计大赛 A:组合数(递推组合+求因子数)
查看>>
吉首大学第八届“新星杯”大学生程序设计大赛 I: 夫子云游(简单搜索)
查看>>
吉首大学第八届“新星杯”大学生程序设计大赛 K: WaWa的难题(找规律)
查看>>
Codeforces Round #533 (Div. 2) C. Ayoub and Lost Array(dp)
查看>>
Codeforces Round #533 (Div. 2) D. Kilani and the Game(bfs)
查看>>
牛客寒假算法基础集训营3 D:处女座的训练(贪心)
查看>>
G:处女座和小姐姐(三)(思维)
查看>>
求最短路径的四种方法(Dijkstra,Floyd,Bellman-Ford,SPFA算法)
查看>>
处女座的比赛资格(拓扑排序求最短路)
查看>>
牛客寒假算法基础集训营4 I:Applese 的回文串(思维)
查看>>
牛客寒假算法基础集训营4 E:Applese 涂颜色(费马小定理+快速幂)
查看>>
牛客寒假算法基础集训营4 C:Applese 走迷宫(bfs)
查看>>
牛客寒假算法基础集训营4 F:Applese 的QQ群(拓扑排序判环)
查看>>
牛客寒假算法基础集训营4 G:Applese 的毒气炸弹(Kruskal求最小生成树)
查看>>
Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering(思维)
查看>>
Codeforces Round #536 (Div. 2) D. Lunar New Year and a Wander(基础图论)
查看>>
牛客寒假算法基础集训营6 A:出题(思维)+B:煤气灶(二分)+C:项链(简单贪心)+D:美食(模拟)
查看>>
牛客寒假算法基础集训营6 E:海啸(二维树状数组 or 前缀和 +容斥定理)
查看>>