设计用于人事管理的类

设计一个用于人事管理的People(人员)类。考虑到通用性。这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、 birthday(出生日期)id(身份证号)等。其中"出生日期"定义为一个"日期"类内嵌子对象。用成员画数实现对人员信息的录入和显示。
2设计要求
类中需包括:构造函数、析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数等。

示例程序如下:

#include <iostream>
#include <string>

class People {
private:
    int number;
    std::string sex;

    class Date {
    public:
        int year;
        int month;
        int day;

        Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {}
    };

    Date birthday;
    std::string id;

public:
    // 构造函数
    People(int num = 0, const std::string& s = "", const std::string& i = "",
           int year = 0, int month = 0, int day = 0)
            : number(num), sex(s), birthday(year, month, day), id(i) {}

    // 拷贝构造函数
    People(const People& other)
            : number(other.number), sex(other.sex), birthday(other.birthday), id(other.id) {}

    // 析构函数
    ~People() {}

    // 成员函数:录入人员信息
    void inputInfo() {
        std::cout << "请输入编号:";
        std::cin >> number;
        std::cout << "请输入性别:";
        std::cin >> sex;
        std::cout << "请输入出生日期(格式:年 月 日):";
        std::cin >> birthday.year >> birthday.month >> birthday.day;
        std::cout << "请输入身份证号:";
        std::cin >> id;
    }

    // 成员函数:显示人员信息
    void displayInfo() const {
        std::cout << "编号:" << number << std::endl;
        std::cout << "性别:" << sex << std::endl;
        std::cout << "出生日期:" << birthday.year << "/" << birthday.month << "/" << birthday.day << std::endl;
        std::cout << "身份证号:" << id << std::endl;
    }
};

int main() {
    People person;

    // 录入人员信息
    person.inputInfo();

    std::cout << "录入的人员信息如下:" << std::endl;
    // 显示人员信息
    person.displayInfo();

    return 0;
}