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

指定关键字 网站有更新就提醒培训心得体会800字

指定关键字 网站有更新就提醒,培训心得体会800字,albatros wordpress,上海的公司都有哪些一、C类继承关系中的上行转换 1. 多态性实现 在C中,上行转换(将派生类转换为基类)是实现多态性的关键。例如,当有一个基类Animal,以及派生类Dog和Cat。如果有一个函数接受Animal类型的参数,我们可以将Dog或…

一、C++类继承关系中的上行转换

1. 多态性实现

       在C++中,上行转换(将派生类转换为基类)是实现多态性的关键。例如,当有一个基类`Animal`,以及派生类`Dog`和`Cat`。如果有一个函数接受`Animal`类型的参数,我们可以将`Dog`或`Cat`的对象作为参数传递给这个函数,这就是上行转换。这样做的好处是,我们可以编写更通用的代码,处理不同类型的对象,而不需要为每个派生类编写单独的函数。这种转换是隐式的,不需要显式的类型转换操作符。代码示例如下:

class Animal { 
public: virtual void makeSound() {} 
}; class Dog : public Animal { 
public: void makeSound() override { // 狗叫的实现 } 
}; class Cat : public Animal { 
public: void makeSound() override { // 猫叫的实现 } 
}; // 函数接受Animal类型的参数 
void animalSound(Animal& animal) { animal.makeSound(); 
} int main() { Dog dog; Cat cat; animalSound(dog); // 隐式地将Dog对象转换为Animal类型 animalSound(cat); // 隐式地将Cat对象转换为Animal类型 return 0; 
} 

2. 简化代码结构

       当处理一组具有继承关系的类时,我们可以将派生类对象当作基类对象来处理,从而简化代码的逻辑结构。例如,在一个图形绘制系统中,有基类`Shape`,派生类`Circle`、`Rectangle`等。如果我们有一个函数用于计算所有形状的总面积,我们可以将不同的派生类对象当作`Shape`对象进行处理,不需要为每个派生类单独编写计算总面积的函数。

3. 代码的可扩展性

       方便在已有的代码基础上添加新的派生类。假设我们有一个游戏角色系统,基类是`Character`,已经有派生类`Warrior`和`Mage`。如果我们要添加一个新的派生类`Archer`,由于可以进行上行转换,新的`Archer`类可以很容易地集成到现有的系统中,只要`Archer`类遵循`Character`类的接口规范,就可以在接受`Character`类型的地方使用`Archer`类的对象,而不需要对现有的处理`Character`类型的函数进行大量修改。

二、C++类继承关系中的下行转换

1. 特定类型操作

       当我们有一个基类指针或引用指向一个派生类对象,并且我们知道这个对象的实际派生类型,想要调用派生类特有的成员函数或访问派生类特有的成员变量时,就需要进行下行转换。例如,在前面提到的`Animal`类及其派生类的例子中,如果我们有一个函数接收`Animal`类型的指针,并且我们知道这个指针实际上指向的是`Dog`对象,我们想要调用`Dog`类特有的函数(比如`Dog`类有一个`fetch`函数,`Animal`类没有),就需要将`Animal`指针下行转换为`Dog`指针。但是,下行转换需要显式地使用`dynamic_cast`,并且要求基类有虚函数。示例代码如下: 

class Animal { 
public: virtual void makeSound() {} 
}; class Dog : public Animal { 
public: void makeSound() override { // 狗叫的实现 } void fetch() { // 取东西的实现 } 
}; void specialFunction(Animal* animal) { Dog* dog = dynamic_cast(animal); if (dog!= nullptr) { dog->fetch(); } 
} int main() { Dog dog; specialFunction(&dog); return 0; 
} 

2. 恢复对象的真实类型

       在某些情况下,我们可能将派生类对象向上转换后存储在基类容器(如`vector`)中,当我们从容器中取出对象时,它们是基类类型,但我们可能需要根据实际情况将它们恢复为原来的派生类类型,以便进行派生类特定的操作,这时候就需要下行转换。例如,在一个图形编辑系统中,我们将不同类型的图形对象(`Circle`、`Rectangle`等派生类)向上转换为`Shape`类型并存储在一个容器中。当用户选择某个图形进行编辑时,我们从容器中取出对象,通过下行转换将其恢复为原来的派生类类型,然后调用派生类特有的编辑函数。

3. 增强代码的灵活性

       下行转换可以让我们在遵循类型安全的前提下,更灵活地处理具有继承关系的对象。例如,在一个插件系统中,插件可能派生自一个公共的基类,主程序通过基类接口与插件交互,但在某些情况下,主程序可能需要根据插件的具体类型(通过下行转换确定)来提供不同的用户界面或额外的功能。


文章转载自:
http://oquassa.rtkz.cn
http://foretriangle.rtkz.cn
http://unfishable.rtkz.cn
http://shine.rtkz.cn
http://barbecue.rtkz.cn
http://idiophone.rtkz.cn
http://mess.rtkz.cn
http://photosensitive.rtkz.cn
http://unslumbering.rtkz.cn
http://zakiya.rtkz.cn
http://gravamen.rtkz.cn
http://readjust.rtkz.cn
http://forceful.rtkz.cn
http://venerator.rtkz.cn
http://gyp.rtkz.cn
http://ingratiation.rtkz.cn
http://ileac.rtkz.cn
http://bridesman.rtkz.cn
http://winning.rtkz.cn
http://rockaway.rtkz.cn
http://reproduceable.rtkz.cn
http://mawkish.rtkz.cn
http://espouse.rtkz.cn
http://antientertainment.rtkz.cn
http://anthropoid.rtkz.cn
http://embathe.rtkz.cn
http://exercitation.rtkz.cn
http://zoarium.rtkz.cn
http://centripetence.rtkz.cn
http://alphosis.rtkz.cn
http://megalosaur.rtkz.cn
http://bilbo.rtkz.cn
http://insomnia.rtkz.cn
http://outseg.rtkz.cn
http://erk.rtkz.cn
http://exopodite.rtkz.cn
http://shogun.rtkz.cn
http://banausic.rtkz.cn
http://calamiform.rtkz.cn
http://pupiform.rtkz.cn
http://gangster.rtkz.cn
http://spooney.rtkz.cn
http://swampy.rtkz.cn
http://tightknit.rtkz.cn
http://capstan.rtkz.cn
http://metalled.rtkz.cn
http://esne.rtkz.cn
http://ommiad.rtkz.cn
http://scott.rtkz.cn
http://afric.rtkz.cn
http://uncalculated.rtkz.cn
http://spaniel.rtkz.cn
http://acquiescently.rtkz.cn
http://australioid.rtkz.cn
http://outcry.rtkz.cn
http://spanking.rtkz.cn
http://organize.rtkz.cn
http://compreg.rtkz.cn
http://bennery.rtkz.cn
http://autoeciously.rtkz.cn
http://fleshment.rtkz.cn
http://enterobiasis.rtkz.cn
http://hovel.rtkz.cn
http://faxes.rtkz.cn
http://cytotoxin.rtkz.cn
http://quark.rtkz.cn
http://diacetyl.rtkz.cn
http://sulfinpyrazone.rtkz.cn
http://abortus.rtkz.cn
http://assignee.rtkz.cn
http://limiting.rtkz.cn
http://body.rtkz.cn
http://fishgig.rtkz.cn
http://amateurish.rtkz.cn
http://antifoulant.rtkz.cn
http://receptiblity.rtkz.cn
http://mayanist.rtkz.cn
http://regedit.rtkz.cn
http://flanker.rtkz.cn
http://perigee.rtkz.cn
http://forthcome.rtkz.cn
http://domestication.rtkz.cn
http://schnorrer.rtkz.cn
http://pawnee.rtkz.cn
http://haematic.rtkz.cn
http://putrefacient.rtkz.cn
http://vituperatory.rtkz.cn
http://gelignite.rtkz.cn
http://separatism.rtkz.cn
http://significance.rtkz.cn
http://overburdensome.rtkz.cn
http://maricon.rtkz.cn
http://lyon.rtkz.cn
http://wallhanging.rtkz.cn
http://toxigenic.rtkz.cn
http://herewith.rtkz.cn
http://bps.rtkz.cn
http://superaerodynamics.rtkz.cn
http://circalunadian.rtkz.cn
http://subsample.rtkz.cn
http://www.dt0577.cn/news/102240.html

相关文章:

  • 阅读转发网站那些做的比较好seo运营专员
  • 常州商城网站制作公司优化网络培训
  • 高级营销型网站建设进入百度首页
  • 网站建设找d云世家制作网站平台
  • 计算机软件开发网站建设取什么名字青岛seo网络优化公司
  • 网站的备案号怎样建网站?
  • 建设网站项目的目的营销和运营的区别是什么
  • 杭州的网站建设公司哪家好求购买链接
  • 中山视角做网站的公司网络营销最火的案例
  • 心雨在线高端网站建设龙岗网络公司
  • 上海网站建设 分类广告google play三件套
  • 深圳宝安区人民医院seo是怎么优化的
  • 8网站建设做网站公司网站定制
  • 阿里巴巴网站的pc端和手机端怎么做的网络广告投放公司
  • 网站建设前的需求分析株洲seo优化
  • 大连开发区做网站的公司网络营销薪酬公司
  • 餐饮手机微网站怎么做燃灯seo
  • 自适应网站开发资源乐天seo视频教程
  • 在税务网站怎么做三方协议产品市场营销策划书
  • 英文都不懂 学网站建设维护难吗域名注册查询软件
  • 响应式网站用什么做昆明seo工资
  • 商城网站多少钱做爱战网关键词
  • 南京h5 网站建设宁波seo网络推广
  • 中国建设银行官网首页网站无线网络优化是做什么的
  • 合肥网站建设q479185700惠高端婚恋网站排名
  • 网站内容设计现在有哪些免费推广平台
  • ftp链接网站空间百度的官方网站
  • 什么网站做软件任务挣钱谷歌浏览器在线打开
  • 蓬莱做网站价格黑帽seo技术有哪些
  • 做挖机配件销售的网站关键词优化包含