问题 问答题

使用VC6打开考生文件夹下的工程MyProj3。此工程包含一个源程序文件 MyMain3.cpp,其中定义的类并不完整。请按要求完成下列操作,将类的定义补充完整。
①定义类Planet的保护数据成员distance和revolve,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolve为int型。请在注释“//**1**”之后添加适当的语句。
②定义类Earth的构造函数Earth(double d,int r),并在其中计算地球绕太阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释“//**2**”之后添加适当的语句。
③定义类Earth的成员show(),用于显示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释“//**3**”之后添加适当的语句。
文件MyMain3.cpp中源程序如下:
//MyMain3.cpp
#include<iostream>
using namespace std;
class Planet

protected:
//* * 1 * *
public:
Planet(double d, int r)

distance = d;
revolve = r;

;
class Earth:public Planet

private:
double circumference;
public:
//* * 2 * *
//* * 3 * *
;
int main ( )

Earth obj (9300000, 365);
obj. show;
return 0;

答案

参考答案:
见解析。

解析: 本题主要考核类的继承与派生。
①第1处是完成类Planet的保护数据成员distance和revolve的定义,根据题意可填入:
double distance;int revolve;
②第2处是定义类Earth的构造函数Earth(double d,int r),并在其中计算地球绕太阳公转的轨道周长。由此可填入:
Earth(double d,int r):Planet(d,r){circumference=2*d*3.1416;}
③第3处是定义类Earth的成员show(),用于显示所有信息。根据要求可填入:
oid show(){cout<<distance<<","<<revolve<<","<<circumference<<end1;}

双选题
单项选择题