对派生类的初始化,从派生类的构造函数开始用初始式进行初始化。
初始式的格式:
派生类的构造函数(参数表):基类构造函数(参数表),对象成员(参数表)...普通成员(初始值)。
初始式的存在意义是,1.可以给带参数的类成员变量赋初值。2.效率问题,(水平不够暂且搁置)
class parent_class{
int data1,data2;
public:
parent_class(int p1 ,int p2){data1=p1;data2=p2;}
int inc1(){
return ++data1;
}
int inc2(){
return ++data2;
}
void display(){
cout<<"data1="<<data1<<",data2="<<data2<<endl;
}
};
class derived_class:private parent_class{
int data3;
parent_class data4;//对象成员
public:
derived_class(int p1,int p2,int p3,int p4,int p5):
parent_class(p1,p2),data4(p3,p4),data3(p5){//对派生类的初始化过程
// data3=p5;
}
int inc1(){ return parent_class::inc1();}
int inc3(){ return ++data3;}
void display(){
parent_class::display();
data4.display();
cout<<"data3="<<data3<<endl;
}
};
int main(){
derived_class d1(17,18,1,2,-5);
d1.inc1();
d1.display();
return 0;
}