用C++编写下面的程序:设计一个father类、一个mother类和一个child类。其中child类继承father类和mother类。father类和mother类都包含姓和名两个数据成员,child类仅包含名数据成员。要求一个child类的对象能够输出父母和自己的姓名。
时间: 2023-11-27 16:49:53 浏览: 64
以下是实现上述要求的 C++ 代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class father {
protected:
string first_name;
string last_name;
public:
father(string first, string last) : first_name(first), last_name(last) {}
string get_first_name() { return first_name; }
string get_last_name() { return last_name; }
};
class mother {
protected:
string first_name;
string last_name;
public:
mother(string first, string last) : first_name(first), last_name(last) {}
string get_first_name() { return first_name; }
string get_last_name() { return last_name; }
};
class child : public father, public mother {
private:
string name;
public:
child(string first, string last, string child_name) : father(first, last), mother(first, last), name(child_name) {}
void show_name() {
cout << "Father's name: " << get_first_name() << " " << father::get_last_name() << endl;
cout << "Mother's name: " << get_first_name() << " " << mother::get_last_name() << endl;
cout << "Child's name: " << name << endl;
}
};
int main() {
child c("John", "Smith", "Tom");
c.show_name();
return 0;
}
```
在上述代码中,我们定义了三个类:father、mother 和 child。father 和 mother 类分别包含了名和姓两个数据成员,并且都有一个构造函数来初始化这两个数据成员。child 类继承了 father 和 mother 类,并且仅包含了名数据成员。child 类有一个构造函数来初始化三个数据成员。在 child 类中,我们定义了一个 show_name() 函数,用来输出父母和孩子的名字。在 show_name() 函数中,我们使用了父类中的 get_first_name() 和 get_last_name() 函数来获取父母的名字,并且使用了 child 类中的 name 数据成员来获取孩子的名字。最后,在 main() 函数中,我们创建了一个 child 对象,并调用了它的 show_name() 函数来输出父母和孩子的名字。
阅读全文