4-36 定义类CPerson,它有以下属性:姓名、身份证号、性别、年龄和相应的成员函数(无 构造函数)。再利用类 CPerson派生出类 CEmployee,派生类CEmployee增加了 两个表示部门和薪水的数据成员,根据需要要为派生类增加新的成员函数。
时间: 2024-02-15 12:05:00 浏览: 99
好的,下面是 C++ 代码实现:
```
class CPerson {
public:
void setName(const string& name_) { name = name_; }
void setId(const string& id_) { id = id_; }
void setGender(const string& gender_) { gender = gender_; }
void setAge(int age_) { age = age_; }
const string& getName() const { return name; }
const string& getId() const { return id; }
const string& getGender() const { return gender; }
int getAge() const { return age; }
private:
string name;
string id;
string gender;
int age;
};
class CEmployee : public CPerson {
public:
void setDepartment(const string& department_) { department = department_; }
void setSalary(double salary_) { salary = salary_; }
const string& getDepartment() const { return department; }
double getSalary() const { return salary; }
private:
string department;
double salary;
};
```
我们先定义了一个 CPerson 类,它有四个私有成员变量:name、id、gender 和 age,以及四个公有成员函数:setName、setId、setGender、setAge、getName、getId、getGender 和 getAge,用于设置和获取姓名、身份证号、性别和年龄。
然后我们定义了一个 CEmployee 类,它是 CPerson 类的派生类。它除了继承了 CPerson 类的成员变量和成员函数外,还有 department 和 salary 成员变量,表示员工所在的部门和薪水。它也有对应的设置和获取部门和薪水的成员函数 setDepartment、setSalary、getDepartment 和 getSalary。
注意,这里我们使用了 const string& 类型的引用来返回字符串类型的成员变量,这样可以避免函数返回字符串类型时发生不必要的复制,提高代码的效率。同时,我们还使用了 double 类型来表示薪水,这是因为薪水是一个浮点数,不适合用整数类型表示。
阅读全文