多态性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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?