当前位置: 首页 > news >正文

大专毕业论文 企业的网站建设广州网站优化工具

大专毕业论文 企业的网站建设,广州网站优化工具,0基础学编程先学什么,外贸网站建设方法虚函数主要是为了父类指针访问子类同名成员方法而引入的,即通过重写了父类的方法,从而实现多态。 01 为何引入纯虚函数 对于普通虚函数,如果子类没有重写相应的虚函数,那么父类指针就只能调用父类函数实现,然而父类有…

虚函数主要是为了父类指针访问子类同名成员方法而引入的,即通过重写了父类的方法,从而实现多态。

01 为何引入纯虚函数

对于普通虚函数,如果子类没有重写相应的虚函数,那么父类指针就只能调用父类函数实现,然而父类有时候并不能给出具体的实现,仅仅只是一种抽象的概念,比如我们抽象了一个父类叫运算calculate,而对于运算的具体实现我们并无法实际给出来,不过希望继承下来的子类能够实现各种计算,如加、减、乘、除等等。

很多朋友就想了,没实现就没实现呗,函数体内啥也不做不就行了吗?

这样做确实也能够达到类似的效果,不过没有太多的必要,如果子类没有去实现相应函数,这样在使用的过程中就会存在不处理的情况,而原本的处理过程子类必须去实现,甚至在编译的阶段就告诉我子类有没有实现~

基于这样的需求,就有了一种没有具体实现的虚函数,称为纯虚函数。

02 纯虚函数的使用

纯虚函数的使用还是比较简单的,即在虚函数声明后面加上"=0",作为其标识即可
那么我们下面以这个demo来体验一下:

#include <iostream>
using namespace std;class abstructParent
{
public:void function1(){cout<<" abstructParent hello C++"<<endl; }virtual void function2() = 0; //纯虚函数 };class Child :public  abstructParent
{
public:void function2(){cout<<" Child hello C++"<<endl; }
};int main(int argc, char** argv) {Child obj;obj.function1();obj.function2();return 0;
}

以上通过子类继承父类来实现,其输出结果为:


从上面的输出结果我们可以了解到几点:

1、如果我们使用父类直接去定义(专业一点叫实例化)一个对象,编译会直接会报错,所以带有纯虚函数的类不能直接实例化为一个对象,因为其没有给出相应的具体实现,如下图所示:

在这里插入图片描述

2、通常称含有纯虚函数的类为抽象类,名称还是比较贴切的,只有声明,没有具体实现,抽象类中也可以包含其他实现,只是不能实例化对象,因为纯虚函数必须要所继承的子类来实现。

3、对于纯虚函数主要是为了实现一个接口,强制继承的子类来实现相应的方法,当然你也可以不实现,不过没有实现虚函数的继承子类仍然是一个抽象类,不能实例化成对象。

03 纯虚函数实现接口

接口是大部分编程语言都会遇到的,然而对于C++没有接口的直接定义,而是通过纯虚函数来实现与接口类似的功能,即把一些公共的部分抽取出来,继承者们分别提供不同的实现。

在这里插入图片描述

接口部分仅仅只是对相关的方法进行声明不需要有具体的实现,而子类继承以后必须实现相应的方法供对象使用。

下面给大家看一个例子来说明C++进行接口实现:

#include <iostream>
using namespace std;/* 接口抽象类的定义 */ 
class Interface {
public:virtual void method1() = 0;virtual void method2() = 0;
};class Device1 : public Interface
{
public:virtual void method1(void) {cout<<"Device1 method1"<<endl; }virtual void method2(void) {cout<<"Device1 method2"<<endl; }
};class Device2 : public Interface
{
public:virtual void method1(void) {cout<<"Device2 method1"<<endl; }virtual void method2(void) {cout<<"Device2 method2"<<endl; }
};class Process {
public:void Parse(Interface *api) {api->method1();api->method2();}
};int main(void)
{Process process;Device1  dev1;Device2  dev2;process.Parse(&dev1);process.Parse(&dev2);return 0;
}

这样通过构造interface抽象类,让不同的设备去继承该类,从而实现接口功能的统一化,如果一个类要有类似的接口处理,就直接继承interface抽象类即可,最终使用同一个处理过程即可调用不同的功能函数。

在这里插入图片描述

http://www.hrbkazy.com/news/21047.html

相关文章:

  • 南京做网站开发 待遇合肥网络seo推广服务
  • 个人网站备案需要哪些收录查询站长工具
  • 三水网站制作公司找一个免费域名的网站
  • 网站作业跨国网站浏览器
  • 做网站学哪方面知识青岛网站seo
  • 河南企业网站建设价格百度seo关键词排名优化
  • 郴州市建设局网站今日新闻热点10条
  • 国外经典手机网站设计潍坊百度seo公司
  • 网站开发遇到的最大困难站长工具亚洲
  • 初中做网站的软件艾滋病多长时间能查出来
  • 石家庄网站建设找哪家好怎样做网站推广啊
  • 武汉微网站开发怎么做网络营销推广啊
  • 经营性网站备案多少钱市场调研分析报告
  • 做阀门的英文网站怎么写网络营销的三种方式
  • 做元器件上什么网站seo网络优化软件
  • 徐州公司网站制作武汉百度百科
  • 免费微网站建设网站建设开发外包公司
  • 优惠券的网站怎么做的软文范例100字以内
  • 怀化疫情最新消息今天上海何鹏seo
  • 做化工的网站网络互联网推广
  • 怎样建企业网站广东广州重大新闻
  • 网站做的好的tkd百度400电话
  • 网站恶意攻击适合seo的网站
  • 怎么做网站流量赚钱什么是网络推广营销
  • 做外贸公司网站重不重要seo外链推广平台
  • 网站开发人员结构配比自己建网站详细流程
  • 网站 开发 价格百度站长平台网站提交
  • 线上推广有哪些渠道seo关键词词库
  • wordpress主题无法安装目录网络优化工作内容
  • oppo网站开发设计app开发用什么软件