若有以下程序:
#include <iostream>
using namespace std;
class A
private:
int x;
protected:
int y;
public:
int z;
void setx(int i)
x=i;
int getx ()
return x;
;
class B : protected A
public:
void setvalue(int a, int b, int c)
setx (
A.;
&nbs
参考答案:C
解析: 本题考核保护继承中对类成员的访问权限。
①在保护继承中,基类公有成员和保护成员都以保护成员身份出现在派生类中,而基类私有成员不可访问。
②基类的公有成员和保护成员被继承以后作为派生类的保护成员,这样,派生类的其他成员可以直接访问它们。
③由保护派.生的类声明的对象,不能访问任何基类的成员。在本题中,基类A中的数据成员y和函数setx,经过保护继承以后,在派生类B中成为保护成员,派生类B的对象不能访问它们。而派生类B中的函数setvalue和 display都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。