问答题
使用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 TestClass 1{ int a;public: //********1******** { return a=x; } void showa() { cout<<a<<end1; } }; class TeStClass2 { int b;public: void setb(int X) { b=x; } void showb() { cout<<b<<end1; }};//********2********{private: //********3********public: void setc(int x,int y,int z) { c=z; //********4******** setb(y); } void showc() { cout<<C<<end1; }};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类型”。类的成员函数是函数的一种,它与一般函数的区别只是,它是一个类的成员,出现在类体中。所以类TestClassl中的成员函数,就是在TestClassl中定义题目中要求的参数为intx的seta函数,即“int seta(int x)”。 (2)题目2要求“完成类TestClass1(公有)和类TestClass2(私有)派生类TestClass3的定义”。从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为:class派生类名:[继承方式】基类名。根据声明派生类的一般形式,这里补全“classTestClass3:public TestClass1,private TestClass2”。 (3)题目3要求“定义类TestClass3中的私有成员c为int”。在类TestClass3中的pfivme数据成员区域,定义int c,即在第3个标识下补全“int c:”。 (4)题目4要求“完成setc中对基类的变量a的赋值"。基类为TestClass1,setc对于该类a的赋值,是hat seta(int x)函数的赋值,即“seta(x);”