设计基类Person(人), 类属性为姓名、性别、年龄;设计派生类Teacher(教师), 类属性为职称、工资。 设计类的构造函数和其他成员函数,,并在主函数中测试类的应用。
时间: 2024-11-25 20:15:59 浏览: 26
在面向对象编程中,我们可以先创建一个基础类`Person`,然后基于它创建派生类`Teacher`。以下是这个例子的实现:
```cpp
// Person.h
class Person {
public:
// 构造函数
Person(std::string name, char gender, int age)
: name(name), gender(gender), age(age) {}
// 属性 getter 和 setter
std::string getName() const { return name; }
void setName(const std::string& name) { this->name = name; }
char getGender() const { return gender; }
void setGender(char gender) { this->gender = gender; }
int getAge() const { return age; }
void setAge(int age) { this->age = age; }
protected:
private:
std::string name;
char gender;
int age;
};
// Teacher.h
class Teacher : public Person {
public:
Teacher(std::string name, char gender, int age, std::string title, double salary)
: Person(name, gender, age), title(title), salary(salary) {}
// 添加新的属性 getter 和 setter
std::string getTitle() const { return title; }
void setTitle(const std::string& title) { this->title = title; }
double getSalary() const { return salary; }
void setSalary(double salary) { this->salary = salary; }
// 例如,添加一个新的成员函数打印信息
void printInfo() const {
std::cout << "Name: " << name << ", Gender: " << gender << ", Age: " << age << ", Title: " << title << ", Salary: " << salary << std::endl;
}
private:
std::string title;
double salary;
};
// main.cpp
int main() {
// 创建一个教师对象
Teacher teacher("张三", 'M', 30, "语文老师", 5000.0);
// 设置属性并打印信息
teacher.setName("李四");
teacher.setGender('F');
teacher.setTitle("数学老师");
teacher.setSalary(6000.0);
teacher.printInfo();
// 主函数结束
return 0;
}
```
在这个例子中,`main()`函数展示了如何创建`Teacher`对象,并通过它的公共属性和方法进行操作。`Teacher`类继承自`Person`,并且在其上添加了特定于教师的信息和功能。
阅读全文