设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中"出生日期"定义为一个"日期"类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数。
时间: 2023-02-05 10:50:36 浏览: 136
以下是一个可以满足要求的 People 类的示例:
```
class Date {
private:
int year, month, day;
public:
// 构造函数和析构函数
Date(int y, int m, int d): year(y), month(m), day(d) {}
~Date() {}
// 拷贝构造函数
Date(const Date& other): year(other.year), month(other.month), day(other.day) {}
// 内联成员函数
inline int getYear() const { return year; }
inline int getMonth() const { return month; }
inline int getDay() const { return day; }
// 带缺省形参值的成员函数
void setYear(int y = 1970) { year = y; }
void setMonth(int m = 1) { month = m; }
void setDay(int d = 1) { day = d; }
};
class People {
private:
int number;
char sex;
Date birthday;
string id;
public:
// 构造函数和析构函数
People(int n, char s, const Date& b, const string& i): number(n), sex(s), birthday(b), id(i) {}
~People() {}
// 拷贝构造函数
People(const People& other): number(other.number), sex(other.sex), birthday(other.birthday), id(other.id) {}
// 内联成员函数
inline int getNumber() const { return number; }
inline char getSex() const { return sex; }
inline const Date& getBirthday() const { return birthday; }
inline const string& getId() const { return id; }
// 带缺省形参值的成员函数
void setNumber(int n = 0) { number = n; }
void setSex(char s = 'M') { sex = s; }
void setBirthday(const Date& b = Date(1970, 1, 1)) { birthday = b; }
void setId(const string& i = "") { id = i; }
};
```
以上的示例中,包括了构造函数和析构函数、拷贝构造函数、内联成员函数以及带缺省形参值的成员函数。
构造函数和析构函数
阅读全文