#include<iostream>
#include<string>
using namespace std;
class Student //声明基类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(); // 输出第二个学生的数据
system("pause");
return 0;
}
总结:
派生类的构造函数一般形式为:
派生类构造函数名(总参数表列):基类构造函数名(参数表列)//基类构造函数名后面括号里的参数表列只有参数名,这些参数是实参
{派生类中新增数据成员初始化语句}