class People { protected: int age; string name; public: People() {} People(int a, string n) : age(a), name(n) {} virtual ~People() {} void setValue(int m, string str) { age = m; name = str; } virtual void display() = 0; }; class Student : public People { private: int studentID; public: Student() {} Student(int a, string n, int id) : People(a, n), studentID(id) {} ~Student() {} void setID(int m) { studentID = m; } void display() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; cout << "Student ID: " << studentID << endl; } }; class Teacher : public People { private: int teacherID; public: Teacher() {} Teacher(int a, string n, int id) : People(a, n), teacherID(id) {} ~Teacher() {} void setID(int m) { teacherID = m; } void display() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; cout << "Teacher ID: " << teacherID << endl; } }; int main() { People* ptr; Student s; Teacher t; int age, studentID, teacherID; string name; // 学生信息输入 cout << "Enter student name: "; getline(cin, name); cout << "Enter student age: "; cin >> age; cout << "Enter student ID: "; cin >> studentID; // 利用父类指针给学生对象初始化赋值 ptr = &s; ptr->setValue(age, name); s.setID(studentID); // 教师信息输入 cin.ignore(); // 忽略掉前面输入时留下的回车符 cout << "Enter teacher name: "; getline(cin, name); cout << "Enter teacher age: "; cin >> age; cout << "Enter teacher ID: "; cin >> teacherID; // 利用父类指针给教师对象初始化赋值 ptr = &t; ptr->setValue(age, name); t.setID(teacherID); // 输出学生和教师信息 cout << endl << "Student Information:" << endl; s.display(); cout << endl << "Teacher Information:" << endl; t.display(); return 0; }
标签:studentID,cout,People,19,age,int,打卡,name From: https://www.cnblogs.com/wlxdaydayup/p/17334752.html