、定义一个Animal类,成员包括: (1)整数类型的私有数据成员m_nWeightBase,表示Animal的体重; (2)整数类型的保护数据成员m_nAgeBase,表示Animal的年龄; (3)公有函数成员set_weight,用指定形参初始化数据成员nWeightBase; (4)公有成员函数get_weight,返回数据成员nWeightBase的值; (5)公有函数成员set_age,用指定形参初始化数据成员m_nAgeBase; 2、定义一个Cat类,公有继承自Animal类,其成员包括: (1)string类型的私有数据成员m_strName; (2)带参数的构造函数,用指定形参对私有数据成员进行初始化; (3)公有的成员函数print_age,功能是首先输出成员m_strName的值,然后输出“, age = ”,接着输出基类的数据成员m_nAgeBase的值。具体输出格式参见main函数和样例输出
时间: 2024-02-03 20:11:15 浏览: 107
以下是Animal类和Cat类的定义:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Animal{
private:
int m_nWeightBase; // Animal的体重
protected:
int m_nAgeBase; // Animal的年龄
public:
void set_weight(int weight){
m_nWeightBase = weight;
}
int get_weight(){
return m_nWeightBase;
}
void set_age(int age){
m_nAgeBase = age;
}
};
class Cat: public Animal{
private:
string m_strName; // 猫的名字
public:
Cat(string name, int weight, int age){
m_strName = name;
set_weight(weight);
set_age(age);
}
void print_age(){
cout << m_strName << ", age = " << m_nAgeBase << endl;
}
};
```
在上面的代码中,Cat类公有继承自Animal类,因此Cat类可以访问Animal类的保护成员m_nAgeBase。Cat类的私有数据成员m_strName表示猫的名字,其它成员函数都是根据题目要求定义的。
下面是一个使用Cat类的示例:
```cpp
int main(){
Cat cat("Kitty", 5, 3);
cat.print_age(); // 输出:Kitty, age = 3
cout << "Cat's weight = " << cat.get_weight() << endl; // 输出:Cat's weight = 5
return 0;
}
```
在上述示例中,我们首先创建了一个名为Kitty的猫,其体重为5,年龄为3。然后我们调用了猫的print_age函数,输出了猫的名字和年龄。最后,我们调用了Animal类中的公有成员函数get_weight,输出了猫的体重。
阅读全文