定义一个部门类Department 属性:部门编号、部门名称、部门人数、部门职责、部门经理 定义两个构造方法:无参和有参各一 定义成员方法:输出信息printDetail() --------------------------- 其有一个子类研发部类ResearchDept 属性:研发方向speciality 在构造方法中调用父类构造方法 重写printDetail()方法
时间: 2023-04-03 16:03:11 浏览: 356
好的,我可以回答这个问题。以下是部门类Department的定义:
```c
#include <stdio.h>
#include <string.h>
// 部门类定义
typedef struct {
char deptId[10]; // 部门编号
char deptName[20]; // 部门名称
int deptSize; // 部门人数
char deptDuty[50]; // 部门职责
char deptManager[20]; // 部门经理
} Department;
// 部门类构造方法
Department createDepartment(char id[], char name[], int size, char duty[], char manager[]) {
Department dept;
strcpy(dept.deptId, id);
strcpy(dept.deptName, name);
dept.deptSize = size;
strcpy(dept.deptDuty, duty);
strcpy(dept.deptManager, manager);
return dept;
}
// 部门类成员方法
void printDetail(Department dept) {
printf("部门编号:%s\n", dept.deptId);
printf("部门名称:%s\n", dept.deptName);
printf("部门人数:%d\n", dept.deptSize);
printf("部门职责:%s\n", dept.deptDuty);
printf("部门经理:%s\n", dept.deptManager);
}
// 研发部类定义
typedef struct {
Department dept; // 继承部门类
char speciality[50]; // 研发方向
} ResearchDept;
// 研发部类构造方法
ResearchDept createResearchDept(char id[], char name[], int size, char duty[], char manager[], char spec[]) {
ResearchDept rdept;
rdept.dept = createDepartment(id, name, size, duty, manager);
strcpy(rdept.speciality, spec);
return rdept;
}
// 研发部类成员方法
void printDetail(ResearchDept rdept) {
printf("部门编号:%s\n", rdept.dept.deptId);
printf("部门名称:%s\n", rdept.dept.deptName);
printf("部门人数:%d\n", rdept.dept.deptSize);
printf("部门职责:%s\n", rdept.dept.deptDuty);
printf("部门经理:%s\n", rdept.dept.deptManager);
printf("研发方向:%s\n", rdept.speciality);
}
```
以上是部门类Department和其子类研发部类ResearchDept的定义,包括属性、构造方法和成员方法。其中,研发部类继承了部门类,并添加了研发方向属性和重写了printDetail()方法。
阅读全文