**
C++继承类的构造函数
**
一.内部赋值的构造函数
二.用父类指针初始化子类对象的构造函数
class student
{
public:
int num;
int age;
student() //默认构造函数
{
num = 10086;
age = 18;
}
//student(int n, int a) :num(n), age(a){} //初始化构造函数也有两种方式,这里是初始化列表的方式
student(int n, int a) //这里是第二种方法,内部赋值的方法
{
num = n;
age = a;
}
~student()
{
cout << "~student()" << endl;
}
void display()
{
cout << "the name of student is " <<num<< endl;
}
protected:
private:
};
class studentplus :public student
{
public:
studentplus()
{
salary = 500;
}
studentplus(int n, int a, int s) :student(n,a) //对于继承类的初始化构造函数有两种方式,一种是内部赋值的方式
{ //一种是用父类对象初始化子类对象。
salary = s; //这里是内部赋值的方式
}
//studentplus(int n, int a, int s) :num(n), age(a), salary(s){} //类似于类的初始化列表的方式是不允许的
studentplus(int s, const student &stu) :student(stu), salary(s) //这里是用父类对象初始化子类对象
{
}
void display(int a)
{
cout << "the salary of studentplus is "<< salary << endl;
}
protected:
private:
int salary;
};
**这里要注意一下用父类对象初始化子类对象的构造函数的引用方法
student s1(22,22);
studentplus sp1(33,s1); //注意这里子类对象的初始化方式,不是studentplus sp1(33,&s1)