问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++编程疑难杂症

发布网友 发布时间:2024-10-19 14:30

我来回答

1个回答

热心网友 时间:2024-11-13 12:56

我也来说一下。
这个原因是对象切割导致的。

首先说一下对象包含。我们知道,大多数编译器的原理是认为,子类包含基类。
所以s2中有一个s1。

void print(s1 s),当传递一个s2的对象时,因为s2不是s1,会进行类型转换,如果向上转换是默认的,一般都会成功。但是基类中不含有s2中私有的东西。所以在进行转换的时候,是不会把子类中私有的东西转换为基类中的东西的。
那么在进行转换的时候,会把子类中属于基类的东西复制到临时对象中,然后才赋函数进行运算。

这就发生了对象切割,即把子类中自己的东西去除,而保存基类固有的。这是C++继承中要避免的问题。很多高级读本都有这个东西的介绍。

所以实际上传递给函数的是一个基类的对象,而不是一个子类对象。输出的就是基类的成员函数。

一般这种都会传递一个引用或指针,以免出现对象切割。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人教版小学英语课本哪里能下载到MP3 小学英语同步听力音频去哪里找 去陆丰旅行,要提前做好什么准备? 请教高手:苹果6s能不能安装两个微信?谢谢指点! 对于一个在女性内衣店工作的男性,你们怎么看待 ...湖是世界最深和蓄水量最大的咸水湖 B.死海是世界最低点 C.马来群 ... ...世界最大的湖泊___世界上人口最多的国家___世界上面积最大... 世界最深和蓄水量最大的湖是什么?世界最低点是哪?世界面积最大的高原... 尚赫净水器滤芯 如何清洗尚赫 我做的油条是用矾、碱,为什么吃起硬、像皮筋那感觉,怎样才会软._百度... 徐州有正规的儿童乐器培训机构吗? 世界上海平面最高的国家是哪个国家? 现在海平面逐渐上升,哪个国家是最有可能幸免的? 天津师范大学舞蹈系怎么样 医疗事故技术鉴定程序不合法能撤销吗 如何撤销医疗事故鉴定申请 撤销医疗事故鉴定书的规定是什么? 撤消医疗事故鉴定申请要注意什么 什么情况下可以撤销医疗事故技术鉴定申请 医疗事故鉴定结论是否可以撤销 父母无法选择,遇到狠心的父亲,对妈妈不好,而且自私。但是对我还行,我是... 如何养好木槿 声乐学了两年!能达到考音乐学院的标准吗? 浸渍胶膜纸饰面人造板是三聚氰胺板吗? 三聚氰胺浸渍纸三聚氰胺浸渍胶膜纸主要指标 解释下水口钳和斜口钳有啥区别 84消毒液能灭老鼠吗 麻汁酱的做法与配方 菠萝烤肉怎样做才好吃? html标题居中的方法是什么? "脑洞老师"是什么意思? 生活不将就的经典语录 一千多油烟机好不好? 一千多的油烟机和两千多的有什么区别啊? 1500左右买个抽油烟机什么牌子的好 请介绍一款1000元左右的油烟机 一千以内的那个油烟机排风量大,能用的住 你好 请问1961年阴历5月25日晚上8点多出生的人 五行属什么 缺什么 还 ... 1961年农历5月20酉时生辰八字 我老公1968年8月7日出生与1961年5月24日出生般配吗 公司被拉入失信名单被骗做了法人,其实我与公司没任何关系怎么解决? 奔驰和宝马哪个性价比高 人有几块骨头(人类头颅骨分别有哪几块骨组成)介绍_人有几块骨头(人类头... 为什么身体很累,闭上眼却睡不着呢? 神经性皮炎老人一日三餐怎么吃 冬季有哪些设计感十足又非常吸睛的服饰值得选择? 暗黑三太古装备怎么得_暗黑三太古装备获取技巧及爆率详解 【智能家居】最新海尔小程序抓包教程 电动车怎么充电好?