(程序题, 35分) 请编程实现:定义一个哺乳动物类Mammal,包含私有属性年龄age和体重weight,再由此派生出狗类Dog,包含私有属性毛色color,主函数中定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。 其中主函数如下: int main() { Dog jack(5,25,"white"); return 0; } 程序的运行结果如下:
时间: 2024-02-09 15:10:28 浏览: 83
C++给出一个哺乳动物类,要求从此派生出一个狗类
3星 · 编辑精心推荐
以下是题目的代码实现:
```C++
#include<iostream>
using namespace std;
class Mammal{
private:
int age;
float weight;
public:
Mammal(int a, float w){
age = a;
weight = w;
cout << "Constructing Mammal" << endl;
}
~Mammal(){
cout << "Destructing Mammal" << endl;
}
};
class Dog: public Mammal{
private:
string color;
public:
Dog(int a, float w, string c): Mammal(a,w){
color = c;
cout << "Constructing Dog" << endl;
}
~Dog(){
cout << "Destructing Dog" << endl;
}
};
int main(){
Dog jack(5,25,"white");
return 0;
}
```
程序的输出结果:
```
Constructing Mammal
Constructing Dog
Destructing Dog
Destructing Mammal
```
其中,首先调用了基类Mammal的构造函数,然后调用了派生类Dog的构造函数。程序结束时,先调用派生类Dog的析构函数,再调用基类Mammal的析构函数。
阅读全文