问题 单项选择题

若有以下程序:
#include <iostream>
using namespace std;
class Base

private:
int x;
protected:
int y;
public:
int z;
void setx(int i)

x=i;
int getx ()

return x;

;
class Inherit : private Base

private:
int m;
public:
int p;
void setvalue(int a, int b, intc, int d)

setx (

A.;
y=b;
z=c;
m=d;

void display()

cout<<getx () <<","<<y<<","<<z<<","<<m<<end1;

;
int main ( )

Inherit A;
A.setvalue(1,2,3,4);
A.display ();
return 0;
A) 1,2,3,4

B.产生语法错误

C.4,3,2,1

D.2,3,4,5

答案

参考答案:A

解析: 本题考核私有继承中类成员的访问权限。当类的继承方式为私有继承时,基类公有成员和保护成员都以私有成员属性出现在派生类中。私有派生类的成员对其基类成员的访问权和公共派生的方式相同,但是,由私有派生的类声明的对象,不能访问任何基类的成员。
本题中,基类Base中的保护成员y和公有成员setx和getx,经过私有继承以后,称为派生类Inherit的私有成员,所以可以在派生类Inherit的函数成员中对它们进行访问。
类Inherit中的函数成员setvalue和display都是公有成员,所以可以通过Inherit的对象对它们进行访问。
本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。

问答题

(二) 某高校新建一栋办公楼和一栋实验楼,均为现浇钢筋混凝土框架结构。办公楼地下一层,地上十一层,建筑檐高48m;实验楼六层,建筑檐高22m。建设单位与某施工总承包单位签订了施工总承包合同。合同约定:(1)电梯安装工程由建设单位指定分包;(2)保温工程保修期限为10年。 施工过程中,发生了下列事件: 事件一:总承包单位上报的施工组织设计中,办公楼采用1台塔吊;在七层楼面设置有自制卸料平台;外架采用悬挑脚手架,从地上2层开始分三次到顶。实验楼采用1台物料提升机;外架采用落地式钢管脚手架。监理工程师按照《危险性较大的分部分项工程安全管理办法》规定,要求总承包单位单位编制与之相关的专项施工方案并上报。 事件二:实验楼物料提升机安装总高度26m,采用一组缆风绳锚固。与各楼层连接处搭设卸料通道,与相应的楼层连通后,仅在通道两侧设置了临边安全防护设施,地面进料口处仅设置安全防护门,且在相应位置挂设了安全警示标志牌。监理工程师认为安全设置不齐全,要求整改。 事件三:办公楼电梯安装工程早于装饰装修工程施工完,提前由总监理工程组织验收,总承包单位未参加。验收后电梯安装单位将电梯工程有关资料移交给建设单位。整体工程完成时,电梯安装单位已撤场,由监理组织,监理、设计、总承包单位参与进行了单位工程质量验收。 事件四:总承包单位在提交竣工验收报告的同时,还提交了《工程质量保修书》,其中保温工程保修期按《民用建筑节能条例》的规定承诺保修5年。建设单位以《工程质量保修书》不合格为由拒绝接收。 问题:

指出事件二中错误之处,并分别给出正确做法。

单项选择题