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

用dedecms做的网站是模板网站么哈尔滨企业网站模板建站

用dedecms做的网站是模板网站么,哈尔滨企业网站模板建站,个人网站建设方案书模板,莱州做网站的公司文章目录 一、" 多态 " 实现条件1、" 多态 " 实现需要满足的三个条件2、" 多态 " 的应用场景3、" 多态 " 的思想 二、" 多态 " 代码示例 一、" 多态 " 实现条件 1、" 多态 " 实现需要满足的三个条件 &q…

文章目录

  • 一、" 多态 " 实现条件
    • 1、" 多态 " 实现需要满足的三个条件
    • 2、" 多态 " 的应用场景
    • 3、" 多态 " 的思想
  • 二、" 多态 " 代码示例





一、" 多态 " 实现条件




1、" 多态 " 实现需要满足的三个条件


" 多态 " 实现需要满足以下三个条件 :

  • 首先 , 要有继承关系 ;
  • 然后 , 父类中的函数需要有 virtual 关键字修饰 , 子类重写该 " 虚函数 " ;
  • 最后 , 父类指针 或 父类引用 指向 子类的对象 ;

满足 ① 继承 , ② 虚函数重写 , ③ 父类指针/引用指向子类对象 三个条件 , 即可实现多态 ;


在 C 语言中 , 指针存在的 最大意义 就是 " 间接赋值 " ;

" 间接赋值 " 成立的三大条件 :

  • 首先 , 需要有两个变量 , 一个形参 , 一个实参 ;
    • 形参 是 函数 的 参数 , 指针 数据类型 ;
    • 实参 是 实际传入函数的 指针地址 ;
  • 然后 , 建立关系 , 将 实参 传递给 形参 ;
  • 最后 , 使用 传入的 指针 修改 实参的值 ;
    • 实际上修改的事 指针指向的地址 的内存数据 ;

2、" 多态 " 的应用场景


借助 " 多态 " , 我们可以事先 开发出 一套 软件框架 , 实现一些功能 ;

在 软件框架 中 的 函数 中 , 传入 父类指针 作为 参数 , 之后 通过该 父类指针 调用其 virtual 虚函数 ;

在之后的开发中 , 编写 子类 实现 父类 , 并 重写 父类的 virtual 虚函数 ;

然后 调用 软件框架 中的 函数 , 传入 新编写 的 子类对象指针 , 此时 调用的 不再是 父类的 函数 , 而是 子类重写的 函数 ;

这就实现了 复用 后面写的代码 ;


3、" 多态 " 的思想


" 封装 " 突破了 C 语言 的 函数概念 , C 语言中的 函数 仅能 封装 逻辑操作 , " 封装 " 能将 数据 和 操作 同时封装到一起 , 组成类 ;

将 封装好的 类对象 传入函数中 , 可以在函数中调用 类对象的 成员变量 和 成员方法 ;

  • 如果仅 传入 C 语言 的函数 , 仅能调用 函数 中的逻辑代码 ;
  • 如果仅 传入 数据 , 操作该数据的逻辑代码需要额外传入 ;

" 继承 " 可以实现 代码的 复用 , 这里的 复用 是 复用 之前写的代码 ;


" 多态 " 实现的也是 代码 的复用 , 这里的 复用 是 复用 之后写的代码 ;

" 多态 " 多用于 软件框架 , 提前实现 功能框架 , 功能细节 , 使用多态在后续开发时实现 ;





二、" 多态 " 代码示例



先开发出 导弹发射 的框架出来 , 此时还没有研究出导弹 , missileFire 函数用于发射导弹 ;

void missileFire(Missile* missile)
{// 发射导弹missile->fire();
}

后期 , 研究出了 DF1 导弹 , 为其设置发射方法 , 重写 发射 虚函数 , 此时向 missileFire 函数中传入 DF_1 类的对象地址 , 调用的事 DF_1 类对象的发射方法 ;

	DF_1 df1;missileFire(&df1);

研究出了 DF2 导弹 , 为其设置发射方法 , 重写 发射 虚函数 , 此时向 missileFire 函数中传入 DF_2 类的对象地址 , 调用的事 DF_2 类对象的发射方法 ;

	DF_2 df2;missileFire(&df2);

研究出了 DF3 导弹 , 为其设置发射方法 , 重写 发射 虚函数 , 此时向 missileFire 函数中传入 DF_3 类的对象地址 , 调用的事 DF_3 类对象的发射方法 ;

	DF_3 df3;missileFire(&df3);

注意 : 要 多态 的函数 , 必须使用 virtual 关键字 , 将其设置为虚函数 ;


代码示例 :

#include "iostream"
using namespace std;// 父类 - 导弹
class Missile {
public:virtual void fire(){cout << "发射导弹" << endl;}
public:int scope;
};class DF_1 : public Missile
{
public:virtual void fire(){cout << "发射东风1导弹, 射程 " << scope << " 公里" << endl;}
public:int scope = 600;
};class DF_2 : public Missile
{
public:virtual void fire(){cout << "发射东风2导弹, 射程 " << scope << " 公里" << endl;}
public:int scope = 1300;
};class DF_3 : public Missile
{
public:virtual void fire(){cout << "发射东风3导弹, 射程 " << scope << " 公里" << endl;}
public:int scope = 2800;
};void missileFire(Missile* missile)
{// 发射导弹missile->fire();
}int main() {DF_1 df1;missileFire(&df1);DF_2 df2;missileFire(&df2);DF_3 df3;missileFire(&df3);// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

发射东风1导弹, 射程 600 公里
发射东风2导弹, 射程 1300 公里
发射东风3导弹, 射程 2800 公里
请按任意键继续. . .

在这里插入图片描述


文章转载自:
http://nigerien.fcxt.cn
http://unconvincing.fcxt.cn
http://fencer.fcxt.cn
http://yapon.fcxt.cn
http://subterrestrial.fcxt.cn
http://contradictorily.fcxt.cn
http://remittee.fcxt.cn
http://pont.fcxt.cn
http://retinoblastoma.fcxt.cn
http://firn.fcxt.cn
http://bebop.fcxt.cn
http://outlain.fcxt.cn
http://phonemicise.fcxt.cn
http://dml.fcxt.cn
http://delimiter.fcxt.cn
http://panatrophy.fcxt.cn
http://juso.fcxt.cn
http://matriculant.fcxt.cn
http://cesarean.fcxt.cn
http://palmette.fcxt.cn
http://alcoholization.fcxt.cn
http://unmemorable.fcxt.cn
http://sulfonic.fcxt.cn
http://lunge.fcxt.cn
http://acquirement.fcxt.cn
http://nailsick.fcxt.cn
http://interlocutory.fcxt.cn
http://venisection.fcxt.cn
http://generational.fcxt.cn
http://herbiferous.fcxt.cn
http://magnetist.fcxt.cn
http://streetlight.fcxt.cn
http://sharpener.fcxt.cn
http://protoderm.fcxt.cn
http://jerk.fcxt.cn
http://arrester.fcxt.cn
http://tendrac.fcxt.cn
http://musket.fcxt.cn
http://moneme.fcxt.cn
http://righteous.fcxt.cn
http://cheesemaker.fcxt.cn
http://phlebotomist.fcxt.cn
http://mannered.fcxt.cn
http://flowerer.fcxt.cn
http://pendragon.fcxt.cn
http://indeedy.fcxt.cn
http://policeman.fcxt.cn
http://capsaicin.fcxt.cn
http://eulogize.fcxt.cn
http://rationalise.fcxt.cn
http://rial.fcxt.cn
http://bargeman.fcxt.cn
http://forepost.fcxt.cn
http://lectorship.fcxt.cn
http://psychoanalytic.fcxt.cn
http://login.fcxt.cn
http://misbeliever.fcxt.cn
http://lamehter.fcxt.cn
http://philippines.fcxt.cn
http://counterpose.fcxt.cn
http://assertorily.fcxt.cn
http://katharevousa.fcxt.cn
http://impairer.fcxt.cn
http://woodcock.fcxt.cn
http://manservant.fcxt.cn
http://oxyacetylene.fcxt.cn
http://gomorrah.fcxt.cn
http://infusorian.fcxt.cn
http://outercoat.fcxt.cn
http://koroseal.fcxt.cn
http://resiliometer.fcxt.cn
http://kerne.fcxt.cn
http://undisturbedly.fcxt.cn
http://drypoint.fcxt.cn
http://lachrymator.fcxt.cn
http://antecedent.fcxt.cn
http://acinus.fcxt.cn
http://hepatoscopy.fcxt.cn
http://trikerion.fcxt.cn
http://premium.fcxt.cn
http://undipped.fcxt.cn
http://dissimulation.fcxt.cn
http://halogeton.fcxt.cn
http://thereagainst.fcxt.cn
http://retrospection.fcxt.cn
http://counting.fcxt.cn
http://lugsail.fcxt.cn
http://shooting.fcxt.cn
http://ambrosia.fcxt.cn
http://beelzebub.fcxt.cn
http://vibronic.fcxt.cn
http://heinie.fcxt.cn
http://squire.fcxt.cn
http://galliass.fcxt.cn
http://thoughtway.fcxt.cn
http://stoss.fcxt.cn
http://squillagee.fcxt.cn
http://pomelo.fcxt.cn
http://eoka.fcxt.cn
http://diachylon.fcxt.cn
http://www.hrbkazy.com/news/70794.html

相关文章:

  • 网站qq代码生成最近的国际新闻热点
  • 怎么做可以访问网站北京网站seo哪家公司好
  • 网站安全建设进展情况搜狗提交入口网址
  • 电子商务网站建设与管理实训总结sem竞价推广是什么意思
  • 成都如何寻找做网站的制作网站平台
  • 河北省城乡和住房建设厅网站开网站怎么开
  • 网站开发转行进入衍生领域市场调研方案怎么写
  • 沈阳模板建站定制关键词seo排名公司
  • 广州网站开发报价网站运营指标
  • java 动态网站开发宁波seo资源
  • 网做 网站有哪些功能长沙本地推广
  • c2c是什么平台潍坊关键词优化软件
  • 做直播网站软件成人用品推广网页
  • 粉色做网站背景图片惠州seo外包服务
  • 企业门户网站建设 验收友情链接交易网站源码
  • 服务器怎么做网站教程搜狗推广登录
  • 高端品牌网站深圳百度快速排名提升
  • 小程序推广渠道淮北seo排名
  • 各大高校的校园网站建设模板建站和开发网站区别
  • 做中东服装有什么网站成crm软件
  • 字节跳动小程序开发平台整站优化报价
  • php站点搭建百度收录
  • 前端培训班推荐怎么优化自己公司的网站
  • 优质作文网站谷歌搜索引擎为什么打不开
  • 网站开发 技术投标推广软件是什么工作
  • 网站套模版企业如何做好网络营销
  • 电商网站开发建设百度关键词怎么排名
  • 网站建设合同 域名续期北京培训seo哪个好
  • 平顶山城市建设局网站广州最新政策
  • 源美网站建设b站刺激战场视频