虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!

纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!
虚函数
引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。
class Cman
{
public:
virtual void Eat(){……};
void Move();
private:
};
class CChild : public CMan
{
public:
virtual void Eat(){……};
private:
};
CMan m_man;
CChild m_child;
CMan *p ;//这才是使用的精髓,如果不定义基类的指针去使用,没有太大的意义
p = &m_man ;
p->Eat(); //始终调用CMan的Eat成员函数,不会调用 CChild 的
p = &m_child;
p->Eat(); //如果子类实现(覆盖)了该方法,则始终调用CChild的Eat函数
//不会调用CMan 的 Eat 方法;如果子类没有实现该函数,则调用CMan的Eat函数
p->Move(); //子类中没有该成员函数,所以调用的是基类中的
纯虚函数
引入原因:
1、同“虚函数”;
2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。
纯虚函数就是基类只定义了函数体,没有实现过程,定义方法如: virtual void Eat() = 0; 不要 在cpp中定义;纯虚函数相当于接口,不能直接实例话,需要派生类来实现函数定义;
有的人可能在想,定义这些有什么用啊 ,我觉得很有用,比如你想描述一些事物的属性给别人,而自己不想去实现,就可以定义为纯虚函数。说的再透彻一些。比如盖楼房,你是老板,你给建筑公司描述清楚你的楼房的特性,多少层,楼顶要有个花园什么的,建筑公司就可以按照你的方法去实现了,如果你不说清楚这些,可能建筑公司不太了解你需要楼房的特性。用纯需函数就可以很好的分工合作了
虚函数和纯虚函数区别
观点一:
类里声明为虚函数的话,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被重载,这样的话,这样编译器就可以使用后期绑定来达到多态了
纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。
class A{
protected:
void foo();//普通类函数
virtual void foo1();//虚函数
virtual void foo2() = 0;//纯虚函数
}
观点二:
虚函数在子类里面也可以不重载的;但纯虚必须在子类去实现,这就像Java的接口一样。通常我们把很多函数加上virtual,是一个好的习惯,虽然牺牲了一些性能,但是增加了面向对象的多态性,因为你很难预料到父类里面的这个函数不在子类里面不去修改它的实现
观点三:
虚函数的类用于“实作继承”,继承接口的同时也继承了父类的实现。当然我们也可以完成自己的实现。纯虚函数的类用于“介面继承”,主要用于通信协议方面。关注的是接口的统一性,实现由子类完成。一般来说,介面类中只有纯虚函数的。
观点四:
带纯虚函数的类叫虚基类,这种基类不能直接生成对象,而只有被继承,并重写其虚函数后,才能使用。这样的类也叫抽象类。
虚函数是为了继承接口和默认行为
纯虚函数只是继承接口,行为必须重新定义
相关推荐:
ChatGPT的VPN梯子:畅享全球互联网自由,打破地域限制,一直搜Ai
SEO优化的话题:助力企业成功的关键,夏杰ai智能管家
AI免费生成文章让创作变得轻松自如
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
SEO全套秘籍:提升网站流量与排名的终极指南,荣昌手机网站建设
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
AI热门软件,未来科技的钥匙
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
AI人工智能:改变未来的科技革命
为什么选择老域名注册,打造品牌价值的秘密武器,网站建设服务费用多少
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
英语日记AI生成:轻松提升英语水平的智能助手
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
SEO需要什么语音,seo需要考虑什么 ,学生作业ai
ChatGPT显示“此网站无法加载站点”:背后原因与解决办法详解,用ai画明度渐变条
什么是seo方法,何为seo ,ai写作神器源码是什么
用AI写文章会不会查重率高?破解写作困扰的真相
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
SEO符合:提升网站排名的秘诀,助力企业赢在搜索引擎优化的赛道,优化没续费 网站没了
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
ChatGPT:智能对话开创新时代,ai做渐变直线
SEO优化排-打造高效的网络营销利器,精神AI
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
SEO费用如何根据预算选择最合适的SEO服务,营销类推广网站
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
ZBlog:开启你的个人网站新时代,轻松搭建与管理,二手手机营销推广方案
Chat启用后ESX连不上?解决方法一网打尽!,为什么AI续写这么离谱
文章AI生成软件高效创作新纪元
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
主流seo是什么,seo是什么推广网站 ,AI心理师
SEO搜外:全球搜索引擎优化的秘密武器,如何选择网站建设类型呢
AI免费生成文章的软件:轻松创作的秘密武器
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
丹东seo是什么怎么选,丹东spr ,黑发ai图
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
为什么说seo这么重要,seo重要吗 ,ai19920403
怎样用AI写文章?快速高效创作新技能!
AI工具,让工作效率翻倍:AI工具教程全面解析
SEO运营工作是什么,seo公司运营 ,720516AI
SEO模块:提升网站排名,驾驭数字营销未来,营口网站建设制作平台
ChatGPT付款银行卡被拒绝?解决方案全解析!,小发猫ai智能写作查重能过吗
二SEO是什么,h二seo三是什么 ,ai手术机