栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 笔试题库

若有以下程序: #includeusingn

笔试题库 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

若有以下程序: #includeusingn

问题:

[单选] 若有以下程序:

#include

usingnamespacestd;

classbase

{public:

base()

{x=0;}

intx;};

classDerivedl:virtualpublicbase

{public:

Derivedl()

{x=10;}};

classDerived2:virtua11publicbase

{public:

Derived2()

{x=20;}};

classDerived:publicDerivedl,protectedDerived2{};intmain()

{Derivedobj;

cout<

return0;}

该程序运行后的输出结果是(  )。

A . 20

B . 30

C . 10

D . 0

正确答案:

A

参考解析:

A。【解析】本题考查虚基类的应用。虽然Derivedl和Derived2都是由共同的基类x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份副本,不论在类Derivedl中修改,还是在Derived2中修改,都是直接对这唯一副本进行操作。本题程序执行语句“Derivedobj;”时.就会先调虚基类base的构造函数,使得X=0,然后执行类Derivedl的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623306.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号