构造日期类,包括年、月、日等私有属性,构造函数和操作这些私有属性的公有函数以及将该对象转换成字符串的转换函数(就是能强制类型转换成string类,比如:有一个日期对象d=date(2019,3,26), 则string(d)就会返回一个字符串“2019年3月26日”);构造人员类,包括姓名,出生日期(复合了日期类的对象)等私有属性,构造函数和操作这些属性的公有函数;构造学生类,该类从人员类派生而来,包括学号和专业私有属性,构造函数和操作私有属性的公有函数。给出代码实现
时间: 2024-02-24 09:57:52 浏览: 89
Javascript 构造函数,公有,私有特权和静态成员定义方法
以下是基于C++的代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Date {
private:
int year;
int month;
int day;
public:
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void setYear(int y) {
year = y;
}
int getYear() const {
return year;
}
void setMonth(int m) {
month = m;
}
int getMonth() const {
return month;
}
void setDay(int d) {
day = d;
}
int getDay() const {
return day;
}
operator string() const {
return to_string(year) + "年" + to_string(month) + "月" + to_string(day) + "日";
}
};
class Person {
private:
string name;
Date birthDate;
public:
Person(string n, Date b) : name(n), birthDate(b) {}
void setName(string n) {
name = n;
}
string getName() const {
return name;
}
void setBirthDate(Date b) {
birthDate = b;
}
Date getBirthDate() const {
return birthDate;
}
};
class Student : public Person {
private:
string studentID;
string major;
public:
Student(string n, Date b, string id, string m) : Person(n, b), studentID(id), major(m) {}
void setStudentID(string id) {
studentID = id;
}
string getStudentID() const {
return studentID;
}
void setMajor(string m) {
major = m;
}
string getMajor() const {
return major;
}
};
int main() {
Date d(2019, 3, 26);
string dateStr = string(d);
cout << dateStr << endl;
Person p("张三", d);
cout << p.getName() << endl;
cout << string(p.getBirthDate()) << endl;
Student s("李四", d, "2019001", "计算机科学");
cout << s.getName() << endl;
cout << string(s.getBirthDate()) << endl;
cout << s.getStudentID() << endl;
cout << s.getMajor() << endl;
return 0;
}
```
在这个实现中,我们定义了三个类:日期类(Date)、人员类(Person)和学生类(Student)。
日期类包括私有属性年(year)、月(month)和日(day),以及构造函数和操作这些私有属性的公有函数,同时还重载了类型转换运算符,将日期对象转换成字符串类型。
人员类包括私有属性姓名(name)和出生日期(birthDate),以及构造函数和操作这些属性的公有函数。
学生类是从人员类派生而来的,增加了学号(studentID)和专业(major)两个私有属性,以及构造函数和操作这些私有属性的公有函数。
在主函数中,我们创建了一个日期对象、一个人员对象和一个学生对象,并调用了它们的公有函数来操作它们的属性,同时也使用了类型转换运算符将日期对象转换成字符串类型。
阅读全文