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

C++类的继承和派生的题~~选B,大家帮我解释解释~

发布网友 发布时间:2023-05-30 15:33

我来回答

2个回答

热心网友 时间:2024-12-02 14:52

选B的原因如下:
问题1:对象成员的问题

子类Derived中有2个成员b和j,而b是基类Base类型的对象,我们选来分析这个对象成员b
在C++中,我们要使用非默认的构造函数来初始化对象成员(注意:不一定是基类的对象成员,这里介绍的情况适合所有对象成员)则必须使用初始化列表才能实现,比如
class B{public: B(int i){} };
class A{public: B mb; };
在上面语句中看起来没有问题,但是当我们创建类A的对象时,比如A ma就会出错,就会出现类A的对象成员mb没有可用的默认构造函数的错误,原因就是在类A中的对象成员mb是使用的默认构造函数来初始化的,因此要使程序正确,必须把类A改为如下语句
class A{public B mb; A():mb(3){} }
使用初始化列表,调用类B的带有一个参数的构造函数初始化对象成员mb,当数整数3可以替换为任何类型相容的整数变量

问题2:继承的问题

在派生类中调用基类带参数的构造函数的方法:在派生类的构造函数中使用初始化列表的形式就可以调用基类带参数的构造函数初始化基类成员,如B():A(int i){},类B是类A的派生类。

原因如下:

如果派生类没有显示用初始化列表调用基类的构造函数时,这时就会用派生类的构造函数调用基类的默认构造函数,构造完基类后,才会执行派生类的构造函数函数体,以保证先执行基类构造函数再执行派生类构造函数的顺序,如果基类没有默认构造函数就会出错。

问题3:类中的普通成员
对于子类Derived中的整型变量成员j,这个不用解释了吧,很简单。

综上所述,所以能满足以上要求的答案只有B
Derived : : Derived (int t) : b(t), Base(t), j(t) { }
第一句b(t)表示使用类Base中还有一个参数的构造函数初始化子类Derived中的对象成员b(注意:这个对象成员不一定非要是基类对象成员),
第二句Base(t)表示调用基类中的带有一个参数的构造函数构造基类部分
第三句j(t)这个不解释,很简单,楼主应该懂。

所以答案A是错误的,因类基类Base没有默认构造函数,在子类中必须显示调用基类的非默认构造函数构造基类部分
答案C是错误的:因为子类中的对象成员b是没有默认的构造函数的,在C中没有明确使用初始化列表调用对象成员的非默认构造函数初始化对象成员b
称案D就错得更明显了:除了有答案A的错误之外,还要加上变量i并不是子类的成员变量的错误,因此变量i轮不到使用子类来初始化。

如果你还不是很理解的话,可以去本人的文库下载专题文现<C++类中的各种成员,嵌套类,友元,this指针专题>和<C++继承,虚函数与多态性专题>,里面有专门介绍,相信其他内容也会给你一些帮助

热心网友 时间:2024-12-02 14:53

这几个选项我没有看出错误
但出题者的本意似乎是让你初始化Derived的所有数据成员,这就要搞清楚Derived有哪些数据成员:b,j以及从Base类继承来的i,所以选择把这三个变量全都初始化的选项,一般初始化基类(本例中为Base类)的成员是调用他的构造函数,所以选B
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 CDerive(string s, int a) : CBase(s), age(a) 钼靶和木板是一种检查的吗?如果不是,哪个效果比较好,哪个比较痛_百度知 ... 汉朝时期,专门管丫鬟的叫什么? 购买的日流量包为什么不是最先用的? 为什么不优先使用上月结转流量 贺佰狮电商平台退货规则是什么 嫁祸的成语嫁祸的成语是什么 今如鬓发何的上一句今如鬓发何的上一句是什么 水阔夕阳多的下一句是什么 前年客重过的上一句是什么 我左手的小拇指的指甲盖里长了个看上去像小水泡的东西,这是什么东西... 倒卓的引证解释倒卓的引证解释是什么 统领[tǒng lǐng]什么意思?近义词和反义词是什么?英文翻译是什么? 四分音符的另一个写法是什么 根据需要为下列音符填满符头符干使之成为四音符这句话是什么意思?_百 ... 刑事拘留在看守所什么意思 电脑培训班多久能毕业? 音符的礼物是啥直播平台 室内隔断门的特点介绍室内隔断门的设计分析 什么是隔断阀?隔断阀的工作原理大全 《我的牛顿教练》免费在线观看完整版高清,求百度网盘资源 电视机PWMN是什么意思? 偷期锦浪荷深处打三个数字 轮滑上台阶打三个数字 王者荣耀金币号怎么练 王者荣耀三无金币号金币怎么来的 o小城尽望乡打三个数字 黑银耳是说女生么 常规操作的意思是什么 ...显示尿酸碱度偏低一点点,尿酮体(+)阴性。是什么意思啊? 湖南益阳农村中,人们常吃的一种用土话说的&quot;袍子巴巴&quot;是什么植物? 梦见穿黑色袍子的预兆 工行网银的客户升级是什么意思啊。普通客户 贵宾 银牌 金牌 贵州哪个酒店可以买茅台? 管道地基处理的一般规定? 基础下面有管道的基础怎么样处理 污水管道沟槽不良基础处理方法 你怎样理解“男人就是江湖”这句话?你的答案暗示着你的男性魅力哦!_百 ... 有个有江湖气的男朋友是什么感受? 运动会开幕式主持人开场白6篇