#include<iostream>
#include<string>
using namespace std;
//子类再派生其他子类
//多层派生A->B->C
class Student
{//定义一个基类
public:
Student(){}
Student(int n,string nam,string s):num(n),name(nam),sex(s) {}
~Student(){};
void getvalue();
void display()
{
cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl;
}
private:
int num;
string name;
string sex;
};
class Stu1:public Student
{//派生一个学生类1
public:
Stu1(){}
Stu1(int n,string nam,string s,int a,string ad):Student(n,nam,s),age(a),addr(ad) {}
void getvalue1();
void display1()
{
display();
cout<<"age: "<<age<<endl;
cout<<"address: "<<addr<<endl;
}
~Stu1(){}
private:
int age;
string addr;
};
class Stu2:public Stu1
{//Stu1派生第二层子类2,多层派生
public:
Stu2(int n,string nam,string s,int a,string ad,string id):Stu1(n,nam,s,a,ad),ID(id){}
void getvalue1();
void display2()
{
display1();
cout<<"ID: "<<ID<<endl;
}
private:
string ID;
};
void main()
{
Stu2 s1(1001,"Z","F",18,"Beijing","4503051234578");
//调用有参构造函数,先调用父类,再子类
s1.display2();
}