#include <iostream>
#include <string>
using namespace std;
class Student                                    //建立基类Student
{
private:
	int num;
	string name;
	char sex;
public:
	void display();                               //声明输出函数
	Student(int n,string n1,char s);                  //声明基类中构造函数
};
void Student::display()                             //定义输出函数
{
	cout<<"num: "<<num<<endl;
	cout<<"name: "<<name<<endl;
	cout<<"sex: "<<sex<<endl;
}
Student::Student(int n,string n1,char s)               //定义基类中构造函数
{
	num=n;
	name=n1;
	sex=s;
}
class NewStudent:public Student                    //建立派生类NewStudent
{
private:
	int age;
public:
	void display();                              //声明输出函数
	NewStudent(int n,string n1,char s,int a);         //声明派生类构造函数
};
void  NewStudent::display()                      //定义输出函数
{
	Student::display();                          //调用基类中输出函数
	cout<<"age: "<<age<<endl;
}
NewStudent::NewStudent(int n,string n1,char s,int a):Student(n,n1,s),age(a){}//定义派生类构造函数
int main()
{
	Student t1(2010,"zhangsan",'m');              //建立基类对象t1，并对其赋值
	NewStudent t2(2010,"lisi",'w',19);             //建立派生类对象t2，并对其赋值
	Student *p=&t1;                           //定义指向Student类对象t1的指针
	p->display();							 //输出display函数中数据
	p=&t2;                                   //使指针指向t2
	p->display();                              //输出display函数中数据
	return 0;
}

