#include<iostream>
#include<string>
using namespace std;
class Person
{
protected:
string m_name;
int m_age;
public:
Person(const string& name, int age)
{
m_name = name;
m_age = age;
}
Person() {};
~Person() {};
void display()
{
cout << "人员姓名:" << m_name << "," <<"年龄:" << m_age << endl;
}
};
class Student:public Person
{
private:
string m_id;
public:
Student(string id, string name, int age)
{
m_age = age;
m_name = name;
m_id = id;
}
void display()
{
cout << "学生姓名:" << m_name << "," << "年龄:" << m_age << "," << "学号:" << m_id << endl;
}
};
int main() {
Person p("张三", 20);
p.display();
Student s("李", 18, "0001");
s.display();
p = (Person)s;
p.display();
Person* ps = new Student("王五", 20, "0002");
ps->display();
delete ps;
return 0;
}
为什么在“李四”和王五处会出现这样的问题
这里是你的定义构造函数
Student(string id, string name, int age)
这是你调用的方式,
Student s("李", 18, "0001");
这些能对应上吗?