静态成员实验 1、编写程序:已有若干只小猫的数据(包括小猫的名字和重量),要求输出这些小猫的重量并计算出小猫的数量和小猫的总重量(要求将小猫的数量和总重量用静态数据成员表示)。

静态成员实验

1、编写程序:已有若干只小猫的数据(包括小猫的名字和重量),要求输出这些小猫的重量并计算出小猫的数量和小猫的总重量(要求将小猫的数量和总重量用静态数据成员表示)。
用c++类,定义类cat

#include<iostream>
#include<string>
using namespace std;

class Cat {
private:
    string name;
    float weight;
    static int numOfCats; // 静态数据成员,记录小猫数量
    static float totalWeight; // 静态数据成员,记录小猫总重量
public:
    Cat(string n, float w) {
        name = n;
        weight = w;
        numOfCats++;
        totalWeight += w;
    }
    void showWeight() {
        cout << name << " 的重量为:" << weight << endl;
    }
    static void showNumOfCats() {
        cout << "小猫的数量为:" << numOfCats << endl;
    }
    static void showTotalWeight() {
        cout << "小猫的总重量为:" << totalWeight << endl;
    }
};

int Cat::numOfCats = 0;
float Cat::totalWeight = 0;

int main() {
    Cat c1("小黄", 2.3);
    Cat c2("小白", 1.9);
    Cat c3("小花", 3.1);

    c1.showWeight();
    c2.showWeight();
    c3.showWeight();

    Cat::showNumOfCats();
    Cat::showTotalWeight();

    return 0;
}


#include <iostream>
#include <string>

class Cat {
public:
    // 构造函数,用于初始化静态数据成员
    Cat() {
        count = 0;
        weight = 0.0;
    }

    // 成员函数,用于输出每只小猫的重量,并统计小猫的数量和总重量
    void printWeight(double w) {
        std::cout << "这只小猫的重量是:" << w << std::endl;
        count++;    // 小猫数量加1
        weight += w;    // 小猫总重量累加
    }

    // 静态数据成员,表示所有小猫的数量和总重量
    static int count;
    static double weight;
};

int Cat::count = 0;
double Cat::weight = 0.0;

int main() {
    // 创建 Cat 对象并调用成员函数 printWeight 输出每只小猫的重量
    Cat cat1, cat2, cat3;
    cat1.printWeight(1.5);
    cat2.printWeight(2.0);
    cat3.printWeight(1.2);

    // 输出所有小猫的数量和总重量
    std::cout << "小猫的数量是:" << Cat::count << std::endl;
    std::cout << "小猫的总重量是:" << Cat::weight << std::endl;
    
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^