设计一个人员类Person 和一个日期类Date,由人员类派生出学生类Student 和教师类 Teacher,学生类和教师类的数据成员 birthday 为日期类。在主函数中进行测试。
时间: 2024-11-30 14:17:34 浏览: 12
在设计这个场景时,首先我们需要创建三个类:Person、Date、Student 和 Teacher。以下是这三个类的基本结构:
```cpp
// 定义 Date 类
class Date {
public:
int day;
int month;
int year;
// 构造函数和getter/setter等
Date(int d = 0, int m = 0, int y = 0) : day(d), month(m), year(y) {}
// ...
};
// 定义 Person 类为基础类
class Person {
protected:
string name;
Date birthDate; // 公共数据成员,表示生日
public:
Person(string n, Date bd) : name(n), birthDate(bd) {}
virtual ~Person() {}
// 获取信息的方法
virtual void introduce() const = 0;
};
// 派生类 Student 和 Teacher
class Student : public Person {
private:
int studentID;
public:
Student(string n, Date bd, int id) : Person(n, bd), studentID(id) {}
// 学生特有的方法,如学习课程
void studyCourse();
};
class Teacher : public Person {
private:
string subject;
public:
Teacher(string n, Date bd, string subj) : Person(n, bd), subject(subj) {}
// 教师特有的方法,如授课
void teach();
};
// 主函数测试
int main() {
// 创建一个学生实例
Student stu("张三", Date(15, 4, 2000), 12345);
stu.introduce(); // 调用父类的 introduce 方法
stu.studyCourse();
// 创建一个教师实例
Teacher tea("李四", Date(5, 9, 1985), "数学");
tea.introduce();
tea.teach();
return 0;
}
```
阅读全文