使用VC6打开考生文件夹下的工程MyProj15。此工程包含一个源程序文件MyMain15.cpp。程序中定义了3个类A、B和C,但类的定义并不完整。 请按要求完成下列操作,将类的定义补充完成: ①类Inherit是类Base的公有派生类。请在注释“//* *1* *”之后添加适当的语句。 ②完成类Inherit成员函数setvalue(int a,int b,int c,int d)的定义,此函数实现的功能是将基类成员x、y、z和派生类的数据成员m的值分别设置成a、b、c和d。请在注释“//* *2* *”之后添加适当的语句。 ③完成类Inherit成员函数display()的类体外定义,此函数实现的功能是以“,,,,”的格式将x、y、z和m的值输出到屏幕上。请在注释“//* *3* *”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain15.cpp清单如下: //Mymain15.cpp #include<iostream> using namespace std; class Base { private: int x; protected: int y; public: int z; void setx(int i) {x=i; } int getx()const {return x; } }; //* * *1* * * { private: int m; public: void setvalue(int a,int b,int c,int d) {//* * *2* * * } void display()const; }; //* * *3* * * int main() { Inherit A; A.setvalue(1,2,3,4); A.display(); return 0; }
参考答案:
解析:①class Inherit:private Base ②setx(a);y=b;z=c;m=d; ③void Inherit::display()const{cout<<getx()<<","<<y<<","<<z<<","<<m<<end1;} 类Inherit是类Base的公有派生类,即其派生方式为public。类Inherit的成员函数setvalue()实现的功能是将基类成员x、y、z和派生类的数据成员m的值分别设置成a、b、c和d。由于基类成员x为私有,所以可以在函数setvalue()中通过调用基类公有成员setx()函数给x赋值。其他数据成员可以直接赋值。在类体外定义类的常成员函数display()时要注意带上修饰符const,因为const也是函数的组成部分。