/* 简单派生的一般形式:
派生类构造函数名(总参数表列):基类构造函数名(参数表列)
{
派生类中新增数据成员初始化语句
}
*/
#include <iostream>
#include<string.h>
using namespace std;
class student
{
public:
student(int n,string nam,char s)
{
num=n;
name=nam;
sex=s;
}
~student(){}
protected: //为了方便子类调用基类的数据成员,把基类的数据成员声明为保护类型,
int num;
string name;
char sex;
};
class student1:public student//声明公用派生类student1
{
public:
//派生类构造函数
student1(int n,string nam,char s,int a,string ad):student(n,nam,s)
//:之前的部分有类型声明,后半部分没有
//:后部分是调用基类的构造函数,传递的参数是实参不是形参
//在函数体中只对派生类新增的数据成员初始化
{
age=a;
addr=ad;
}
void show() //成员函数调用数据成员
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
~student1(){}
private:
int age;
string addr;
};
int main()
{
student1 stud1(10010,"wang-li",'f',19,"115 Beijing Road,Shanghai");
student1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing");
stud1.show();
stud2.show();
return 0;
}