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

jsp购物网站开发 论文导购类网站模板

jsp购物网站开发 论文,导购类网站模板,5分钟宣传片拍摄价格,网站后台上传木马教程虚函数主要是为了父类指针访问子类同名成员方法而引入的,即通过重写了父类的方法,从而实现多态。 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.yayakq.cn/news/117640/

相关文章:

  • 泰安网站建设找工作北京关键词优化平台
  • 在线制作公司网站WordPress菜单过滤器
  • 网站设计的任务做网站责任
  • 免费 网站建设静态网页模板源代码
  • 北京网站建设有哪些公司好wordpress制作上传图片
  • 网站建设挂什么费用怎样做网站呢
  • 湖北建设信息网站wordpress 手机端页面
  • 广州网站制作电话域名网站做优化外链
  • 吉安做网站的公司专业团队打造专业品质
  • 做卖图片的网站能赚钱吗科技与生活
  • 做休闲会所网站制作wordpress出售功能插件
  • 购物网站二级店铺mvc怎么编辑网站源码
  • 申请企业资助建设网站网站模板 国外
  • 北京市住房建设官网站山西泽庆建设公司官网
  • 怎么自己做购物网站房产网址
  • 网站建设需求分析的实施北京网站设计公司hlh成都柚米科技15
  • 网站设计软件河南的网站建设公司
  • wordpress 留言墙插件seo竞争对手分析
  • 个人网站设计论文模板四川建设网有限责任公司是国企吗
  • 建一个类似淘宝的网站需要多少钱虚拟主机能建设网站吗
  • 中国建设监理网站企业网站建设哪家优惠
  • vip影视建设网站官网核心关键词和长尾关键词举例
  • 网站建设费的账务处理wordpress mysql 密码重置
  • 申请好域名后怎么建设网站创意设计网页制作教程
  • 一个公司网站开发多少钱做网站能自己找服务器吗
  • 网站链接建设及引流营销1网站建设的目标是什么意思
  • 网站备案号信息修改wordpress哪个版本 最快
  • 拖拽式网站建设费用江苏五星建设网站
  • 统计局门户网站建设背景想做电商运营怎么入手
  • 做网站和软件哪个挣钱wordpress如何上传网页