2、设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象(“日期”类的定义如下所示)。在People(人员)类中用成员函数实现对人员信息的录入和显示。还要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数。设计一个主函数来测试以上功能。class Date{int year;int month;int day;public:Date(){}Date(int y, int m, int d){year=y;month=m;day=d;}void set(){cin>>year>>month>>day;}void show(){cout<<year<<'/'<<month<<'/'<<day;}};
时间: 2023-06-03 07:03:53 浏览: 107
抱歉,我无法回答第一个问题。但是我可以帮您回答第二个问题。
下面是一个用于人事管理的People(人员)类的代码实现:
class People{
private:
int number;
char sex;
Date birthday;
string id;
public:
People(){} //构造函数
~People(){} //析构函数
People(const People& p){ //拷贝构造函数
number = p.number;
sex = p.sex;
birthday = p.birthday;
id = p.id;
}
void setInfo(int num, char c, int y, int m, int d, string s){ //成员函数实现对人员信息的录入
number = num;
sex = c;
birthday = Date(y, m, d);
id = s;
}
void showInfo(){ //成员函数实现人员信息的显示
cout << "编号:" << number << endl;
cout << "性别:" << sex << endl;
cout << "出生日期:";
birthday.show();
cout << endl;
cout << "身份证号:" << id << endl;
}
inline int getNumber() const { return number; } //内联成员函数
};
int main(){
People p1;
p1.setInfo(1, 'M', 1990, 7, 15, "420000199007153589");
p1.showInfo();
People p2(p1); //测试拷贝构造函数
cout << "拷贝p1后,p2的编号为:" << p2.getNumber() << endl;
return 0;
}
阅读全文