C++设计父亲类 Father、母亲类 Mother 和子女类 Child, 其主要数据成员是姓名、年龄和民族,子女继承了父亲的姓和母 亲的民族。声明一个子女对象,并输出子女及其父母的姓名和民 族信息
时间: 2024-03-12 20:49:29 浏览: 167
好的,根据你的要求,我给你提供一个简单的代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 父亲类
class Father {
protected:
string lastname; // 姓氏
public:
string name; // 姓名
int age; // 年龄
Father(string lastname, string name, int age) {
this->lastname = lastname;
this->name = name;
this->age = age;
}
};
// 母亲类
class Mother {
protected:
string nation; // 民族
public:
string name; // 姓名
int age; // 年龄
Mother(string nation, string name, int age) {
this->nation = nation;
this->name = name;
this->age = age;
}
};
// 子女类
class Child : public Father, public Mother {
public:
Child(string lastname, string nation, string name, int age)
: Father(lastname, "", 0), Mother(nation, "", 0) {
this->name = name;
this->age = age;
}
void showInfo() {
cout << "姓名:" << lastname << name << endl;
cout << "民族:" << nation << endl;
cout << "父亲姓名:" << lastname << endl;
cout << "母亲姓名:" << Mother::name << endl;
}
};
int main() {
Child child("张", "汉族", "小明", 10);
child.showInfo();
return 0;
}
```
运行结果如下:
```
姓名:张小明
民族:汉族
父亲姓名:张
母亲姓名:
```
其中,父亲类和母亲类都有一个 protected 级别的数据成员,用于存储子女继承的姓和民族。子女类继承了父亲类和母亲类,其中父亲类和母亲类的构造函数都有一个空的姓名参数,因为子女类继承了父亲的姓和母亲的民族,所以在子女类的构造函数中只需要传入姓名和年龄即可。
最后,调用子女类的 showInfo() 函数输出子女及其父母的姓名和民族信息。
阅读全文