若有以下程序: #include <iostream> using namespace std; class Base { int x; protected: int y; public:

admin2010-03-29  35

问题 若有以下程序:    #include <iostream>    using namespace std;    class Base    {       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,int c, 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

答案1

解析 本题中,基类Base中的保护成员y和公有成员setx和getx,经过私有继承以后,称为派生类Inherit的私有成员,所以可以在派生类Inherit的函数成员中对它们进行访问。类Inherit中的函数成员setvalue和display都是公有成员,所以可以通过Inherit的对象对它们进行访问。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。
转载请注明原文地址:https://jikaoti.com/ti/8xW0FFFM
0

最新回复(0)