定义一个父类Person及其子类Teacher和Student,要求 (1)父类Person类具有私有属性,包括保护成员姓名(na me)、性别(sec)和籍贯(native_place),并定义公共方法GetInfo() 来获取这些信息,定义公共方法Display0来输出信,息. (2)Student类继承自Person类,添加保护属性学号(id)和专业(major),重载公共方法 GetInfoO来获取这些信息,重载 公共方法 DisplayO) 方法来输出信息. (3)Teacher类继承自Person类,添加保护属性工号(id) 和学院(college),重载公共方法 GetInfo() 来获取这些信息,重 载公共方法 Display()方法来输出信息 (4)通过Person 类指针分别指向Person对象、Student对象和Teacher对象,并调用Display()方法.
时间: 2024-03-13 11:47:01 浏览: 50
下面是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
private:
string name;
string sex;
string native_place;
public:
void GetInfo() {
cout << "请输入姓名:";
cin >> name;
cout << "请输入性别:";
cin >> sex;
cout << "请输入籍贯:";
cin >> native_place;
}
void Display() {
cout << "姓名:" << name << endl;
cout << "性别:" << sex << endl;
cout << "籍贯:" << native_place << endl;
}
};
class Student : public Person {
protected:
string id;
string major;
public:
void GetInfo() {
Person::GetInfo();
cout << "请输入学号:";
cin >> id;
cout << "请输入专业:";
cin >> major;
}
void Display() {
Person::Display();
cout << "学号:" << id << endl;
cout << "专业:" << major << endl;
}
};
class Teacher : public Person {
protected:
string id;
string college;
public:
void GetInfo() {
Person::GetInfo();
cout << "请输入工号:";
cin >> id;
cout << "请输入学院:";
cin >> college;
}
void Display() {
Person::Display();
cout << "工号:" << id << endl;
cout << "学院:" << college << endl;
}
};
int main() {
Person* p1 = new Person();
Student* p2 = new Student();
Teacher* p3 = new Teacher();
cout << "Person的信息:" << endl;
p1->GetInfo();
p1->Display();
cout << "Student的信息:" << endl;
p2->GetInfo();
p2->Display();
cout << "Teacher的信息:" << endl;
p3->GetInfo();
p3->Display();
delete p1;
delete p2;
delete p3;
return 0;
}
```
输出结果:
```
Person的信息:
请输入姓名:张三
请输入性别:男
请输入籍贯:北京
姓名:张三
性别:男
籍贯:北京
Student的信息:
请输入姓名:李四
请输入性别:女
请输入籍贯:上海
请输入学号:1001
请输入专业:计算机科学与技术
姓名:李四
性别:女
籍贯:上海
学号:1001
专业:计算机科学与技术
Teacher的信息:
请输入姓名:王五
请输入性别:男
请输入籍贯:天津
请输入工号:2001
请输入学院:信息工程学院
姓名:王五
性别:男
籍贯:天津
工号:2001
学院:信息工程学院
```
阅读全文