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

建一个网站大约花多少钱给公司建立网站

建一个网站大约花多少钱,给公司建立网站,星空无限传媒官网免费下载,大连开发区网站开发公司电话用于向下转化。 父类引用指向指类对象 假设父亲是a, 子类是b. B* pb new B; 子类对象 A* pa 父类引用指向子类对象, 那么向上转化 Apa pb 这个是自动完成的,隐式转化,不需要dynamic_cast 向下转化指的是 A pa new B。 这个是指向子类对象…

用于向下转化。 父类引用指向指类对象

假设父亲是a, 子类是b.
B* pb = new B; 子类对象
A* pa 父类引用指向子类对象,
那么向上转化 Apa = pb 这个是自动完成的,隐式转化,不需要dynamic_cast
向下转化指的是
A
pa = new B。 这个是指向子类对象的父类引用, 转化为子类引用
B *b = dynamic_cast<B*>(pa)
总结就是 父类 向下转化为子类, 但是父类指针本身是指向子类的。
而不是说指向父类的指针转化为指向子类的指针,这个是无法转的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. 举例说明用法

首先,类X和类A都是基类,各自有虚析构函数。然后,类B公有继承自A,类C公有继承自B,所以C的继承链是C→B→A。接着,类D公有继承自X和C,也就是多重继承,D的基类是X和C,而C又继承自B和A。因此,D的继承结构应该是D同时继承X和C,而C又继承B和A。所以D的完整继承链是D→X,D→C→B→A。

现在来看各个选项:

选项A:D* pd = new D; A* pa = dynamic_cast<A*>(pd);
这里pd是D类型的指针,转换为A*。因为D继承自C,而C继承自B和A,所以D是A的派生类。因此,从D到A是上行转换(upcast),这种转换是安全的,不需要dynamic_cast,直接隐式转换即可**(父类引用指向子类对象,安全的,直接隐式转化)**。但即使使用dynamic_cast,结果也是有效的,pa会指向D对象中的A子对象部分。所以选项A的转换是合法的,结果成功。

选项B:B* pb = new B; D* pd = dynamic_cast<D*>(pb);
这里pb是B类型的指针,尝试转换为D*。因为D继承自C,而C继承自B,所以D是B的派生类。但pb实际指向的是B对象,而不是D对象。dynamic_cast在下行转换(downcast)时,会检查对象的实际类型是否为目标类型。由于pb指向的是B对象,而不是D对象,所以转换失败,返回nullptr。因此选项B的转换是合法的,但结果失败,pd为nullptr。

选项C:A* pa = new D; X* px = dynamic_cast<X*>(pa);
pa是一个指向D对象的A指针。D继承自X和C,而C继承自B和A。因此,D对象中包含X和A的子对象。这里要将A转换为X。由于A和X之间没有直接的继承关系,但因为D同时继承了X和C(而C继承自A),所以D对象中包含X和A的子对象。dynamic_cast在这种情况下,可以进行跨基类的转换,前提是两个基类都在同一个对象中。这里,pa指向的是D对象的A子对象,要转换到X子对象,需要通过D的类型信息。由于D确实继承自X,所以dynamic_cast应该可以找到X的子对象,转换成功。因此选项C的转换是合法的,结果成功,px指向D对象的X子对象。

选项D:A* pa = new C; C* pc = dynamic_cast<C*>(pa);
pa是一个指向C对象的A指针。因为C是A的派生类(C→B→A),所以这里从A到C是下行转换。由于pa实际指向的是C对象,dynamic_cast会检查类型是否匹配。因为C确实是A的派生类,所以转换成功,pc指向原来的C对象。所以选项D的转换是合法的,结果成功。

不过,我需要再仔细检查选项D的描述是否正确。实际上,C是A的派生类,所以存在继承关系。因此,选项D的dynamic_cast是合法的,且转换成功。

3. 原理说明:A* pa = new D; X* px = dynamic_cast<X*>(pa); 通过画出内存布局来解释,为什么可以使用转化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

B* pb = new B; D* pd = dynamic_cast<D*>(pb); 通过内存布局分析这个为甚不可以转化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/530279.html

相关文章:

  • 网站开发岗位内容和要求网站不同颜色
  • 广州空港经济区门户网站做网站交互效果用什么软件
  • 网站建设收费标准策划wordpress免费公司官网主题
  • 怎么制作网站封面用插件做网站
  • 华宁县住房和城乡建设局网站数字营销专业就业前景
  • 重庆荣昌网站建设报价服装设计怎么学
  • ISO18000-6C协议UHF6C超高频RFID读写C#源码
  • 泉州网站建设推广企业电子商务网站建设的目的是开展网络营销
  • (五)Gradle 依赖传递与冲突处理
  • 百度建站企业年报查询
  • js 网站制作信誉好的品牌网站建设
  • Java事故排查
  • 阿里云建网站步骤房地产开发建设工程口碑好
  • 手机网站开发有前途建设网站需要什么
  • 网站建设课程性质免费诶网站建设
  • 网站开发需求预算重庆市建设工程信息网安全标准化评价系统
  • 南宁做网站推广nnsomwordpress如何网址大全
  • 亿网万联佛山seo优化评价
  • 杨和网站设计制作优化网站做内链接
  • 网站建设前准备seo综合诊断工具
  • 动态规划入门1 - 爬楼梯问题,从递归到动态规划的完美演绎
  • 【GTest 】GTest 详解以及安装教程
  • 网站建设的实践报告怎么查询自己的二建信息
  • 高端品牌网站建设案例网站开发方向学啥
  • 绿色做环保网站的好处主机如何做服务器建网站
  • 宜宾网站建设宜宾wordpress用户筛选
  • 华为自助建站做钓鱼网站要具备什么
  • 企业营销型网站制作多少钱杭州cms建站模板
  • 怎么做简单地网站网站的备案流程
  • 网站开发能进入无形资产吗太原百度做网站多少钱