设计一个人类Person,有一个虚方法Getperson(),输出“这是基类Person”,然后设计子类;医生类,并重写基类的虚方法,输出“这是医生类”,教师类Teacher,并重写基类的虚方法,输出“这是教师类”。分别建立每个类的对象,分别输出各对象的信息
时间: 2024-03-25 18:39:02 浏览: 42
好的,以下是代码实现:
```c++
#include <iostream>
class Person {
public:
virtual void Getperson() {
std::cout << "这是基类Person" << std::endl;
}
};
class Doctor : public Person {
public:
void Getperson() {
std::cout << "这是医生类" << std::endl;
}
};
class Teacher : public Person {
public:
void Getperson() {
std::cout << "这是教师类" << std::endl;
}
};
int main() {
Person* p_person = new Person();
Doctor* p_doctor = new Doctor();
Teacher* p_teacher = new Teacher();
p_person->Getperson();
p_doctor->Getperson();
p_teacher->Getperson();
delete p_person;
delete p_doctor;
delete p_teacher;
return 0;
}
```
输出结果为:
```
这是基类Person
这是医生类
这是教师类
```
在这个例子中,Person 是基类,Doctor 和 Teacher 是 Person 的子类。每个类都实现了 Getperson() 方法,并且 Doctor 和 Teacher 重写了基类 Person 中的虚方法 Getperson(),以便输出不同的信息。
在主函数中,我们创建了一个 Person 对象、一个 Doctor 对象和一个 Teacher 对象,并依次调用它们的 Getperson() 方法,输出了不同的结果。
阅读全文