1.编程实现以下类。 People作为公共基类,包含string类型成员变量 m_name, int类型成员变量m_age;实现带参构造函数。 Teacher类由People类派生, Student类由People类派生, Doctor类由Teacher类、Student类派生。
时间: 2024-06-22 10:02:54 浏览: 302
设计一个Person类,有Person类派生一个Student类和一个Teacher类
在面向对象编程中,你可以按照以下步骤为`People`类和其子类`Teacher`, `Student`, 和`Doctor`编写代码:
首先,定义`People`类,包含`m_name`和`m_age`成员变量以及构造函数:
```cpp
class People {
public:
// 定义成员变量
std::string m_name;
int m_age;
// 带参数构造函数
People(const std::string& name, int age) : m_name(name), m_age(age) {
// 初始化成员变量
}
// 其他可能的方法(如获取或设置年龄的get和set方法)
};
```
然后,为`Teacher`和`Student`类分别重写构造函数,继承自`People`:
```cpp
class Teacher : public People {
public:
Teacher(const std::string& name, int age) : People(name, age) {} // 直接调用基类构造函数
};
class Student : public People {
public:
Student(const std::string& name, int age) : People(name, age) {} // 同上
};
```
最后,为`Doctor`类定义,它既继承自`Teacher`又继承自`Student`,所以它的构造函数会自动拥有这两个类的构造行为:
```cpp
class Doctor : public Teacher, public Student {
public:
Doctor(const std::string& name, int age) : Teacher(name, age), Student(name, age) {} // 两个构造函数都会被调用
};
```
阅读全文