C++设计一个人员类person和一个日期类date由人员类派出学生Student和教师类teacher,学生类和教师类的数据组成员birthday为日期类。在主函数中进行测试
时间: 2024-11-30 09:16:47 浏览: 15
在C++中,我们可以首先创建一个基础类`Person`,然后派生出`Student`和`Teacher`两个子类,同时包含一个`Date`类型的成员变量`birthday`。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 基础类Person
class Person {
public:
std::string name;
Date birthday;
// 构造函数
Person(const std::string& n, const Date& b) : name(n), birthday(b) {}
};
// 子类Teacher和Student,继承自Person
class Teacher : public Person {
public:
Teacher(const std::string& n, const Date& b) : Person(n, b) {} // 继承构造函数
void teach() { // 教师特有的方法
std::cout << "Teacher " << name << " teaching...\n";
}
};
class Student : public Person {
public:
Student(const std::string& n, const Date& b) : Person(n, b) {} // 继承构造函数
void study() { // 学生特有的方法
std::cout << "Student " << name << " studying...\n";
}
};
// 日期类Date (这里简化实现)
class Date {
private:
int year, month, day;
public:
Date(int y, int m, int d) : year(y), month(m), day(d) {}
// 为了演示如何设置生日,提供一个setBirthday方法
void setBirthday(int y, int m, int d) {
year = y;
month = m;
day = d;
}
// 省略其他日期操作...
};
int main() {
// 创建并初始化实例
Date date(1990, 4, 25); // 示例生日
Teacher teacher("John Doe", date);
Student student("Jane Smith", date.setBirthday(2000, 10, 15)); // 设置学生的生日
// 调用各自的特有方法
teacher.teach();
student.study();
return 0;
}
```
在这个例子中,我们演示了如何在C++中设计这样的结构,并在`main`函数中创建了一个`Teacher`和一个`Student`实例,设置了他们的生日。通过继承,他们共享了`Person`类的共同属性,如名字和生日。
阅读全文