对派生类的初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对派生类的初始化相关的知识,希望对你有一定的参考价值。

对派生类的初始化,从派生类的构造函数开始用初始式进行初始化。

初始式的格式:

派生类的构造函数(参数表):基类构造函数(参数表),对象成员(参数表)...普通成员(初始值)。

初始式的存在意义是,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;

}


以上是关于对派生类的初始化的主要内容,如果未能解决你的问题,请参考以下文章

C++基类和派生类的构造函数

C++基类和派生类的构造函数

C++中的派生类,可以不定义对象直接调用基类的成员和调用自己的成员函数嘛???

虚函数总结

关于C++基类与派生类

生成一个派生类对象时,调用基类和派生类构造函数按啥次序