应用题 1. 使用VC++2010打开考生文件夹下“proj2”文件夹中的工程proj2.sln。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
    每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整
    (1)定义类Cmelon的私有静态数据成员float型变量totalweight和int型变量totalNo,请在注释////********1********后添加适当的语句。
    (2)完成类Cmelon的带一个float型变量w的构造函数,并把这个w加到totalweight中,并且totalNo自加。请在注释//********2********后添加适当的语句。
    (3)在析构函数中,在totalweight中减去weight,然后totalNo自减,请在注释//********3********后添加适当的语句。
    (4)完成静态成员变量的初始化为0,请在注释//********4********后添加适当的语句。
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
    #include<iostream.h>
    class Cmelon
    {
    private:
    float weight;
    //********1********
   
    static int totalNo;
    public:
    Cmelon(float w)
    {
    //********2********
   
    totalweight+= w;
    totalNo++;
    }
    ~Cmelon()
    {
    //********3********
   
    totalweight -= weight;
    }
    void display()
    {
    cout << "Sell a melon with "<< weight << "kg" << endl;
    cout << "Total sell number: " << totalNo << endl;
    cout << "Total sell weight: "<< totalweight <<"kg" <<endl << endl;
    }
    };
    //********4********
   
    float Cmelon::totalweight = 0.0;
    int main()
    {
    Cmelon melon1(1.2);
    melon1.display();
    Cmelon melon2(2.3);
    melon2.display();
    return 0;
    }
【正确答案】(1)添加语句:static float totalweight;
   (2)添加语句:weight=w;
   (3)添加语句:totalNo--;
   (4)添加语句:int Cmelon::totalNo=0;
【答案解析】 程序中定义了Cmelon类,包含totalweight和totalNo两个静态变量和float型变量weight,分别表示卖出瓜的总重量、总个数和该瓜的重量,每定义一个Cmelon对象表示卖出去了一个瓜,在构造函数中计算瓜的总重量和总个数,display函数打印基本信息,包括瓜的重量、总重量和总个数。
   (1)静态数据成员声明时需使用关键字static,因此第1个标识下应添加“static float totalweight;”。
   (2)构造函数用来对类成员进行初始化,在Cmelon类的构造函数Cmelon(float w)中,完成weight的初始化,并把这个w加到totalweight中,并且totalNo自加,因此第2个标识下应添加“weight=w;”。
   (3)调用析构函数相当于退瓜,这时totalweight中减去weight,然后totalNo自减,因此第3个标识下应添加“totalNo--;”。
   (4)静态数据成员的初始化格式为:<数据类型><类名>::<静态数据成员>=<初始值>,因此第4个标识下应添加“int Cmelon::totalNo=0;”。