|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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
这道题目需要你定义一个动物类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函数,输出它们的基本信息。
|
|