初莫M 发表于 2023-11-3 19:12:07

这个题怎么做啊

animal
题目描述
编写动物类animal,其中包含数据成员年龄age;编写带参构造函数,初始化成员age;编写成员函数display,输出animal的基本信息。
编写派生类cat,编写带参构造函数,初始化其成员;编写成员函数display,输出cat的基本信息。
编写派生类dog,编写带参构造函数,初始化其成员;编写成员函数display,输出dog的基本信息。
完成以上三个类,使下列主函数能够正确运行。
int main()
{      
int x, y, z;
      cin >> x >> y >> z;
       animal a(x);
       cat c(y);
       dog d(z);
       a.display();
       c.display();
       d.display();
}
输入描述
三个整数,分别表示动物、猫、狗的年龄
输出描述
动物、猫、狗的信息
样例
输入
2 3 4
输出
animal,age:2
cat,age:3
dog,age:4

isdkz 发表于 2023-11-3 19:12:19

这道题目需要你定义一个动物类animal,以及它的两个派生类cat和dog。其中,animal类有一个数据成员年龄age,有一个带参构造函数,用来初始化年龄age。还有一个display成员函数,用来输出animal的基本信息。cat和dog也有一个带参构造函数,用来初始化它们的年龄age。并且它们也都有一个display成员函数,用来输出它们的基本信息。

下面是完整的代码实现:

#include <iostream>
using namespace std;

class animal {
protected:
    int age;
public:
    animal(int a): age(a) {}
    virtual void display() {
      cout << "animal,age:" << age << endl;
    }
};

class cat: public animal {
public:
    cat(int a): animal(a) {}
    void display() {
      cout << "cat,age:" << age << endl;
    }
};

class dog: public animal {
public:
    dog(int a): animal(a) {}
    void display() {
      cout << "dog,age:" << age << endl;
    }
};

int main() {
    int x, y, z;
    cin >> x >> y >> z;
    animal a(x);
    cat c(y);
    dog d(z);
    a.display();
    c.display();
    d.display();
    return 0;
}


在这个代码中,我们定义了三个类animal、cat和dog。其中,animal类是一个基类,cat和dog都是它的派生类。在animal类中,我们定义了一个数据成员age,用来存储年龄。我们还定义了一个带参构造函数,用来初始化年龄。最后,我们还定义了一个display成员函数,用来输出animal的基本信息。

在cat和dog类中,我们都继承了animal类,并且都定义了一个带参构造函数,用来初始化它们的年龄。同时,我们也都定义了一个display成员函数,用来输出它们的基本信息。在这里,我们使用了虚函数,以便在派生类中重写基类的display函数。

在主函数中,我们首先输入三个整数,分别表示动物、猫、狗的年龄。然后,我们分别创建一个animal、cat和dog对象,并且分别调用它们的display函数,输出它们的基本信息。

Mike_python小 发表于 2023-11-3 19:13:50

题目分析:

这道题目要求定义一个动物类(animal),其中包含年龄数据成员(age)。同时,还需要定义一个派生类猫(cat)和一个派生类狗(dog),它们继承自动物类,并且具有自己的特定的构造函数和显示函数。

解决方案:

首先,我们定义一个基类animal,其中包含一个age的数据成员和带参构造函数用于初始化age。然后,我们定义一个派生类cat,它继承自animal,并具有自己的带参构造函数和显示函数。最后,我们定义另一个派生类dog,也继承自animal,并具有自己的带参构造函数和显示函数。

以下是实现上述需求的完整C++代码:


#include <iostream>
using namespace std;

class animal {
protected:
    int age;

public:
    animal(int a) : age(a) {}

    void display() {
      cout << "animal,age:" << age << endl;
    }
};

class cat : public animal {
public:
    cat(int a) : animal(a) {}
   
    void display() {
      cout << "cat,age:" << age << endl;
    }
};

class dog : public animal {
public:
    dog(int a) : animal(a) {}
   
    void display() {
      cout << "dog,age:" << age << endl;
    }
};

int main() {
    int x, y, z;
    cin >> x >> y >> z;
   
    animal a(x);
    cat c(y);
    dog d(z);
   
    a.display();
    c.display();
    d.display();
   
    return 0;
}


编译并运行上述代码,然后根据输入的年龄,输出相应的动物信息。

示例输入:

2 3 4


示例输出:

animal,age:2
cat,age:3
dog,age:4


希望以上解答对您有帮助。如有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 这个题怎么做啊