xample接口概念讲解及例子演示芯片烤电池

C++ 和 Java 不同的是,C++ 没有 interface 关键字。对于很多新手来说,C++ 当中接口的概念不容易像 Java 当中那样被理解。

然而接口是面向对象编程当中的重要组成部分,也是新手需要学习的重要思维,虽然 C++ 并不那么面向对象。

首先,要明确接口的概念:

接口的存在意义是为不同的派生类提供统一的标准,继而实现面向对象编程当中的多态概念。

对象是对客观事物的抽象,类是对对象的抽象。

那么,C++ 当中既然不存在 interface 关键字,那么接口是通过什么方式来实现的呢?

首先要讲两个概念:

一、纯虚函数 (Pure Virtual Function):

1,纯虚函数只有函数名、参数、返回值类型。

2,纯虚函数的定义是在函数句首使用 virtual 关键字修饰,并且在句末增加 "= 0"。

4,定义纯虚函数的目的在于,使每一个派生类都拥有相同的函数规范。

承上启下:包含纯虚函数的类就是抽象类。

二、抽象类 (Abstract Class):

1,抽象类必须包含一个纯虚函数,存在纯虚函数的类就一定是一个抽象类。

2,抽象类不能被实例化,只能被继承派生,因为纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。

3,派生出来的子类必须实现所有抽象类当中的纯虚函数。

4,抽象类默认存在隐式的构造函数,但是不能将构造函数定义为纯虚函数。(因为无意义)

5,析构函数可以定义成纯虚函数,相应的派生类也要给出析构函数的实现。

6,如果派生出来的子类没有实现父抽象类当中的所有纯虚函数,那子类仍然是抽象类。

这就是接口的概念,为所有派生类提供了一个统一的规范可以实现多态。

====================================

演示讲解部分

这里的 Demo 不像高校老师或培训机构那样随便写几个类来演示了,而是选择一个更贴合实际开发的场景:

定义一个接口(抽象类),两个动态库去继承并分别采用不同实现,最后在 main 函数中执行通过多态获得不同效果。

演示使用 Visual Studio 2022,其中会涉及智能指针、动态库类的导出、动态库链接等额外知识点,自行 MSDN 补充。

Visual Studio 是一个解决方案包含N个项目,这个 Demo 的结构就是接口作为一个项目、两个动态库两个项目、演示执行的EXE一个项目。

------------------------------------

新建第一个项目,创建接口头文件:BrainToolBoxInterface.h

文件中有一个叫“大脑工具箱”的抽象类,它拥有两个纯虚函数作为统一的接口。

------------------------------------

新建第二和第三个项目:两个动态库

分别叫 “人力工具箱” 和 “电脑工具箱”

其中两个项目的 dllmain、phc、framework完全一致,并且VS会自动帮你创建。

但是要注意,两个项目新建后,要将接口头文件所在的路径添加到 “附加包含目录”。

注意两个属性必须搭配 _declspec() 关键字使用。

我们的两个动态库是给外部程序调用的,所以应使用 _declspec(dllexport),表明类可以被外部所使用。

注意:[摘自MSDN] 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于 DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨 DLL 边界的函数调用中。但是,必须使用 __declspec(dllimport) 才能导入 DLL 中使用的变量。

“人力工具箱”动态库:

HumanToolBox.h

“电脑工具箱”动态库:

ComputerToolBox.h

可以看到,“人力工具箱” 和 “电脑工具箱” 使用了共同的 BrainToolBoxInterface 接口,但是实现完全不同。

------------------------------------

新建第四个项目:调用两个DLL的可执行文件

在项目引用当中添加 ComputerToolBox 和 HumanToolBox。

将 ComputerToolBox 和 HumanToolBox 头文件所在的路径添加到 “附加包含目录”。【实际开发中建议使用 pIMPL 隐藏 DLL 实现】

------------------------------------

THE END
0.装机人员必备全能工具箱包实战合集简介:装机人员工具箱包是专为电脑组装与维护技术人员打造的一站式工具集合,涵盖系统清理、性能优化、硬件检测、系统备份、网络诊断、安全防护及驱动管理等多类实用软件。该工具箱经过实际验证,可高效完成磁盘清理、注册表修复、启动项管理、内存优化、CPU/显卡/内存检测、系统镜像备份、病毒查杀、驱动更新等关键任务,显著jvzquC41dnuh0lxfp0tfv8|gkzooa;>585=:38ftvkimg8igvcomu86755939=8
1.电脑工具箱排行榜京东JD.COM为您提供电脑工具箱销量排行榜、电脑工具箱哪个好、电脑工具箱多少钱等相关资讯,从电脑工具箱价格、评价、图片等多方面比较,为您推荐优质电脑工具箱产品!jvzquC41yy}/lm3eqo5qjk4mg{e799kf8f=8;=i2;:85ej3jvor
2.推荐一个极好用的电脑工具箱软件——图吧工具箱常玩电脑,关注DIY的人都知道大名鼎鼎的图拉丁吧 现吧内大神推出了一个完全免费的工具箱集合软件,集合了包括CPU-Z等等常用工具,实在太实用了,简直是我的梦中情软。 下面是官网地址:http://www.tbtool.cn/ 程序简介: 下载地址:http://www.tbtool.cn/download/202305-3.htmljvzquC415i4eq~gcp0ipo8sqvg596B7:7;;61
3.《梦幻西游》电脑版综合工具箱计算器,科举答题器梦幻西游2官方网站最新最全工具箱,安全可靠准确,包含梦幻西游2科举答题,梦幻西游2科举题目,梦幻西游2人物属性计算,梦幻西游2召唤兽属性计算等等。jvzquC41z{w/3?80eqs0vxtnu1yk0qyon
4.【电脑维护工具箱多功能版】电脑维护工具箱多功能版V4.7装机人员必备版重要提示,个别系统版本如果使用软件中的自动更新下载到100%自动退出软件后不会自动启用新版本的,请自行重命名目录下的UP.tmp,后缀更改为.exe便可正常运行最新版本,然后删除旧版。 软件说明 电脑维护工具箱是一个功能强大的电脑工具箱,它包含了超多的电脑维护工具,许多功能都可以一键完成。文件管理功能可以把多个图像文jvzquC41zkg{cr3|qn4dqv3ep1jfvjnn18607B66384tj}rn
5.[Windows]一百多款最经典电脑工具小明工具箱V8.0而这款小明工具箱这两天正好更新了,感觉还不错,就顺便推荐给黑域小伙伴,小明工具箱通过自解压方式封装,运行之后会默认解压到 D 盘,不占用 C 盘空间,不会让电脑卡顿,非常贴心。 具体我们来安装体验下: 小明工具箱是一款电脑端的聚合工具箱,整合了几十个常用的经典软件和功能,仅需一个软件,就能干一篮子软件的活jvzquC41yy}/j‚gcug4dqv4re1}jpmtyu1936;3jvor
6.电脑图像工具箱绿色版下载电脑图像工具箱官方版是一款多功能图像处理软件。在这里一般的图片处理转换等操作都可以轻松完成,实现全部的图像相关处理工作,非常好用。软件集成全部图像相关软件,不管你是从事啥行业,这款软件很有收藏价值!它集成上百种免费绿色图像工具,功能包括了图像处理、图像浏览、图标制作、图像转换、图像捕捉、动画制作、图像压缩jvzquC41yy}/5;w0eqs0uxkv16:59;3jvor
7.电脑PE工具箱哪个好?6款电脑PE工具箱推荐6款电脑PE工具箱推荐 PE工具箱的作用非常多,最常见的可以用来重装系统、备份系统、还原系统、硬盘修复、硬盘分区等等,PE工具箱可以安装在本地硬盘也可以安装在U盘,不过有的PE工具箱在重装系统后会携带软件以及插件,那么小编给各位推荐几款实在的PE工具箱。jvzquC41yy}/3A6:50ipo8xqhv555<82;64ivvq
8.黑科技工具箱电脑黑科技软件大全v3.5最新版下载电脑黑科技工具箱是一款Windows平台下好用的小工具,这款工具箱中收集整理了我们日常最常用的工具,集成63种实用功能于一身,做成了合集的形式,功能齐全,免去了我们找工具的时间,打开黑科技工具箱就可以找到想要的工具,省时省力。 功能特点 1、超级截图工具 jvzq<84yyy4xkw|kp94dqv4uqhz04A8620nuou
9.搞机工具箱电脑版下载搞机工具箱桌面版下载v11.0.0搞机工具箱电脑版 v11.0.0官方版 搞机工具箱电脑版是一款可以利用ADB来操作手机的电脑软件,通过它用户可以在免ROOT的情况下,直接与自己的手机连接并对其进行屏幕显示调节、状态与导航栏ui调节、无极调节、物理按键模拟、触摸模拟、截图推送、冻结应用等操作,功能十分全面。jvzquC41yy}/fmtqq0ipo8xqhvjpyw439;7627mvo
10.装机人员专业工具箱电脑优化工具箱电脑城装机工具箱中文绿色单文件本装机工具箱包括:系统服务优化,优化设置,网络优化,实用绿色工具,XP序列号替换器,卸载清除,常用批处理,OEM品牌自己做,这八个类别。 每个类别下面拥有很多的小软件,这是一个软件的合集包,非常方便我们放在U盘里面带着走。 装机人员专业工具箱电脑优化工具箱电脑城装机工具箱 jvzquC41yy}/lk:30pku1|thvu568B=:0jznn
11.装机人员工具箱下载装机人员专业工具箱电脑版v3.0最新版装机人员专业工具箱是为用户提供丰富的装机工具的软件,软件功能十分强大,可以帮助用户快速清理电脑、杀毒和硬盘检测,软件有着一键操作设置,帮助其他用户更方便的维护电脑,有兴趣的用户快来下载体验吧。 装机人员专业工具箱电脑版介绍 装机人员工具箱完整版为电脑装机人员提供了丰富实用的工具,涵盖了备份还原、光盘工具、垃jvzquC41yy}/zƒ<0eqs0fx|pkplp1A:3474ivvq
12.【装机之家工具箱】集成众多电脑硬件检测与实用软件的装机必备微信关注“装机之家科技”公众号,获取实时推出新版本的装机之家工具箱,私信回复“工具箱”。 以上就是装机之家分享的“装机之家工具箱”下载地址以及工具介绍,特别适合小白新机检测硬件战JS,同时也是各大电脑爱好者以及电脑城技术员的必备装机工具,目前暂时就收录这些检测软件和实用工具,后续会在新版本的会新增更多工具,请大家微信关注“装机之家科技”公众号,时时更新jvzq<84yyy4mq}ue0eun1ƒole1>:6
13.牛学长Windows系统工具箱2.7.11.0牛学长Windows系统工具箱是一款简单好用的电脑系统修复工具,软件有着简便的操作界面,能够一键检测并修复Windows电脑蓝屏、黑屏、屏幕卡死、随机重启、更新循环、不断重启等超过30,000个不同Windows的系统问题。 软件功能 1、Windows电脑蓝屏/黑屏问题一键修复 jvzquC41uqlu0
14.安卓模拟器梦幻西游手游电脑版手游模拟器梦幻实用工具箱叶子猪模拟器为玩家提供安卓模拟器,梦幻西游手游电脑版,手游模拟器,梦幻实用工具箱等工具,帮助玩家更方便的畅玩游戏.jvzq<84vqqrt0‚|0et0o‚4
15.升级日志软键盘新界面,好看更好用 工具箱新增“跨屏输入”,手机输入电脑同步显示 改进语音上屏方式,输入更流畅 优化英文排序和中英文混输词库 优化安装速度,输入更快一步 解决登录页面显示错误问题2017.10.13 8.7正式版发布6选功能一键触发,操作更快捷 优化金额大写组词,输入更规范 分号工具箱增加表情、翻译入口 优化外来用户jvzquC41rktzkw3uqiuv0lto1enbppjnqi4qjy