博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯虚函数(pure virtual function )和抽象类(abstract base class)
阅读量:4922 次
发布时间:2019-06-11

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

函数体=0的虚函数称为“纯虚函数”。包含纯虚函数的类称为“抽象类”#include 
class Animal // This Animal is an abstract base class {protected: std::string m_name;public: Animal(std::string name) : m_name(name) { } std::string getName() { return m_name; } virtual const char* speak() = 0; // note that speak is now a pure virtual function };int main() { Animal a; //错:抽象类不能实例化(不能定义抽象类的对象(变量)) }//从抽象类派生的类型如果没有继承实现所有的纯虚函数,则仍然是“抽象类” #include
class Cow : public Animal{public: Cow(std::string name) : Animal(name) { } // We forgot to redefine speak };int main(){ Cow cow("Betsy"); //仍然错:因为Cow仍然是抽象类 std::cout << cow.getName() << " says " << cow.speak() << '\n';}像下面这样实现所有纯虚函数就没问题了,Cow不是一个抽象类#include
class Cow : public Animal{public: Cow(std::string name) : Animal(name) { } virtual const char* speak() { return "Moo"; }};int main(){ Cow cow("Betsy"); std::cout << cow.getName() << " says " << cow.speak() << '\n';}

 

转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10999165.html

你可能感兴趣的文章
查找目录下的所有文件中是否含有某个字符串 linux
查看>>
2018年各大互联网前端面试题四(美团)
查看>>
一起学Python:字符串介绍
查看>>
学习笔记:树状数组
查看>>
洛谷P1772 [ZJOI2006]物流运输 题解
查看>>
CF519E A and B and Lecture Rooms
查看>>
python-redis之数据类型二
查看>>
Java类加载机制
查看>>
循环单链表实现
查看>>
Android设计模式实战---责任链模式
查看>>
剑指Offer_31_整数中1出现的次数(从1到n整数中1出现的次数)
查看>>
10月29日 迅雷会员vip账号分享 91freevip 晚间21:00更新
查看>>
【一题多解】Python 字符串逆序
查看>>
open ball、closed ball 与 open set、closed set(interior point,limit point)、dense set
查看>>
字典(dictionary)与映射(map)
查看>>
Python 编程规范 —— TODO 注释(结合 PyCharm)
查看>>
十万个为什么 —— 名词解释(体育)
查看>>
table的设置(w3c)
查看>>
冲刺一
查看>>
【练习】在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b...
查看>>