多态性15

#include<iostream>
using namespace std;
class People{
protected:
int age;
string name;
public:
People(){};
People(int a,string n){
age=a;
name=n;
}
~People(){};
void setValue(int m,string str){
age=m;
name=str;
}
virtual void display() const=0;
};
void fun(People* ptr){
ptr->display();
}
class Student:public People{
private:
int studentID;
public:
Student(){};
Student(int age,string name,int studentID):People(age,name){
this->studentID=studentID;
}
~Student(){};
void setID(int m){
this->studentID=m;
}
void display() const{
cout<<name<<","<<age<<","<<studentID<<endl;
}
};
class Teacher:public People{
private:
int teacherID;
public:
Teacher(){};
Teacher(int age,string name,int teacherID):People(age,name){
this->teacherID=teacherID;
}
~Teacher(){};
void setID(int m){
this->teacherID=m;
}
void display() const{
cout<<name<<","<<age<<","<<teacherID<<endl;
}
};
int main()
{
People* people;
Student student;
Teacher teacher;
int age;
string name;
int id;
cout<<"请输入年龄age、姓名name"<<endl;
cin>>age>>name;
people=&student;
people->setValue(age,name);
people=&teacher;
people->setValue(age,name);
cout<<"请输入学号"<<endl;
cin>>id;
student.setID(id);
cout<<"请输入工号"<<endl;
cin>>id;
teacher.setID(id);
fun(&student);
fun(&teacher);
return 0;
}

posted @   不会JAVA的小袁  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示