#include
using namespace std;
class Person{
public:
string sno;
string name;
int age;
Person(){}
Person(string s,string n,int a){
sno = s;
name = n;
age = a;
}
void tostring(){
cout<<"我叫:"<"我今年:"<"我的学号是:"<class Student:public Person{
public:
string zhuanye;
Student(){}
Student(string s,string n,int a,string z):Person(s,n,a){
zhuanye = z;
}
void tostring(){
cout<<"我叫:"<"我今年:"<"我的学号是:"<"专业是:"<int main(){
string sno;
string name;
int age;
string zhuanye;
cout<<"请输入学号"<>sno;
cout<<"请输入姓名"<>name;
cout<<"请输入年龄"<>age;
cout<<"请输入专业"<>zhuanye;
Student s1= Student(sno,name,age,zhuanye);
Person &aa=s1;
aa.tostring();
return 0;
}
必须基类中tostring改为虚函数,才有你说的多态效果
virtual void tostring(){
cout<<"我叫:"<<name<<"我今年:"<<age<<"我的学号是:"<<sno<<endl;
}
由于tostring不是虚函数,而aa是Person基类引用,所以只会调用基类的tostring函数