若有以下程序 #include <iostream> using namespace std; class A { public: A(int i,int j) { a=i;

admin2010-03-29  46

问题 若有以下程序    #include <iostream>    using namespace std;    class A    {    public:       A(int i,int j)       {          a=i;          b=j;       }       void move(int x, int y)       {          a+=x;          b+=y;       }       void show()       {          cout < <a < <" , " <<b<< end1;       }    private:       int  a,b;    };    class B :  private A    {    public:       B(int i,int j) :A(i,j) {}       void fun ( )       {          move (3, 5);       }       void f1 ( )       {          A::show();       }    };    int main ( )    {        B d(3,4);        d. fun ( );        d.f1();        return 0;    }    程序执行后的输出结果是 (   )。

选项 A、3,4
B、6,8
C、6,9
D、4,3

答案4

解析 本题考核派生类的应用。本题中,类B是类A的私有派生类,在类B的成员函数fun()中调用基类A的成员函数move(),并传入实参3和5。在类B的成员函数f1()中调用基类A的成员函数show(),来显示基类数据成员a和b的值。主函数中,定义了派生类B的对象d,并赋初值3和4。然后调用对象d的成员函数fun()和f1(),通过上述对函数fun()和f1()的功能的描述可知,程序最后输出6和9。
转载请注明原文地址:https://kaotiyun.com/show/H3jp777K
0

最新回复(0)