用C++实现:设计一个father类、一个mother类和一个child类。其中child类继承father类和mother类。father类和mother类都包含姓和名两个数据成员,child类仅包含名数据成员。要求一个child类的对象能够输出父母和自己的姓名。
时间: 2023-11-27 16:49:38 浏览: 81
以下是用C++实现的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Father {
public:
Father(string first_name, string last_name)
: m_first_name(first_name), m_last_name(last_name) {}
string getFullName() {
return m_first_name + " " + m_last_name;
}
protected:
string m_first_name;
string m_last_name;
};
class Mother {
public:
Mother(string first_name, string last_name)
: m_first_name(first_name), m_last_name(last_name) {}
string getFullName() {
return m_first_name + " " + m_last_name;
}
protected:
string m_first_name;
string m_last_name;
};
class Child : public Father, public Mother {
public:
Child(string first_name)
: Father("", ""), Mother("", ""), m_first_name(first_name) {}
void printName() {
cout << "Father's name: " << Father::getFullName() << endl;
cout << "Mother's name: " << Mother::getFullName() << endl;
cout << "Child's name: " << m_first_name << endl;
}
private:
string m_first_name;
};
int main() {
Father f("John", "Doe");
Mother m("Jane", "Doe");
Child c("Jack");
c.printName();
return 0;
}
```
在上面的代码中,我们定义了 Father 和 Mother 类,分别包含了姓和名两个数据成员,并且实现了一个 getFullName() 方法,用于返回全名。
然后我们定义了 Child 类,继承了 Father 和 Mother 类。由于 Child 类中只包含了名数据成员,所以我们需要在构造函数中初始化父类的数据成员。同时,我们还实现了一个 printName() 方法,用于输出父母和自己的姓名。
在主函数中,我们分别创建了 Father、Mother 和 Child 类的对象,并调用了 Child 类的 printName() 方法,输出了父母和自己的姓名。
阅读全文