问答题 使用VC++6.0打开 下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整。
(1)定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量AllNo,请在注释1后添加适当的语句。
(2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AllNo自加。请在注释2后添加适当的语句。
(3)在析构函数中,在AllWeight中减去weight,然后AllNo自减,请在注释3后添加适当的语句。
(4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include<iostream.h>
class TCFruit
{
private:
float Weight;
//********1********
static int AllNO;
public:
TCFruit(float w)
{
//********2********
AllWeight+=w;
AllNo++;
}
~TCFruit()
{
//********3********
AllWeight-=Weight;
}
void display()
{
cout<<"Sell a Fruit with"<<Weight<<"kg"<<endl;
cout<<"All sell number:"<<AllNo<<endl;
cout<<"All sell weight:"<<AllWeight<<"kg"<<endl<<endl;
}
};
//********4********
float TCFruit::AllWeight=0.0;
int main()
{
TCFruit Fruit1(1.2);
Fruit1.display();
TCFruit Fruit2(2.3);
Fruit2.display();
return 0;
}
【正确答案】
【答案解析】(1)应添加“slatic float Allweight;”。
(2)应添加“Weight=w;”。
(3)应添加“AllNo--;”。
(4)应添加“int TCFruit::AllNo=0;”。
答案考生文件夹 [解析] 静态数据成员声明时需使用关键字static,因此第1处应添加“static float Allweight;”。构造函数用来对类成员进行初始化,在TCFruit类的构造函数TCFruit(floatw)中,完成weight的初始化,并把这个w加到AllWeight中,并且AllNo自加,因此第2处应添加“weight=w;”。调用析构函数相当于退出,这时AllWeight中减去weight,然后AllNo自减,因此第3处应添加“AllNo--;”。静态数据成员的初始化格式为“<数据类型><类名>::<静态数据成员>=<初始值>”,因此第4处应添加“int TCFruit::AllNo=0;”。