问答题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类TestClass1的成员函数seta定义,定义seta对象x为int类型,请在注释//********1********后添加适当的语句。 (2)完成类TestClass1(共有)和类TestClass2(私有)派生类TestClass3的定义,请在注释//********2********后添加适当的语句。 (3)定义类TestClass3中的私有成员C为int,请在注释//********3********添加适当的语句。 (4)完成setc中对基类的变量a的赋值,请在注释//********4********后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#include<iostream.h>Class TestClass1{ int a;public: //********1******** { return a=x: } Void showa() { cout<<a<<endl: )};Class TestClass2{ int b;public: Void Setb(int x) { b=x; } Void showb() { cout<<b<<endl; }};//********2********{private: //********3********public: void setc(int x,int y,int z) { C=Z; //********4******** setb(y); } Void Showc() { Cout<<c<<endl; } }; Void main() { TestClass3 c; c.Seta(5); c.Showa(); c.Setc(5,7,4); c.Showc();}
【正确答案】正确答案:(1)添加语句:int seta(int x) (2)添加语句:class TestClass3:public TestClass1,private TestClass2 (3)添加语句:int c; (4)添加语句:seta(x);
【答案解析】解析:(1)题目1要求“完成类TestClass1的成员函数seta定义,定义seta对象X为int类型”。类的成员函数是函数的一种,它与一般函数的区别只是,它是一个类的成员,出现在类体中。所以类TestClass1中的成员函数,就是在TestClass1中定义题目中要求的参数为im X的seta函数,即“int seta(int x)”。 (2)题目2要求“完成类TestClass1(公有)和类TestClass2(私有)派生类TestClass3的定义”。从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为:class派生类名:[继承方式]基类名。根据声明派生类的一般形式,这里补全“classTestClass3:public TestClass1,private TestClass2”。 (3)题目3要求“定义类TestClass3中的私有成员C为int”。在类TestClass3中的private数据成员区域,定义int C,即在第3个标识下补全“int c:”。 (4)题目4要求“完成setc中对基类的变量a的赋值”。基类为TestClass1,setc对于该类a的赋值,是int seta(int x)函数的赋值,即“seta(x);”。