C++中派生类构造函数解析

来源:互联网 发布:手机版网站 知乎 编辑:程序博客网 时间:2024/05/21 06:49

简单的继承方式
class parent
{

}

class son:public parent
{

}
上面的代码完成了下面的工作:
派生类对象存储了基类的数据成员(派生类继承了基类的实现)
派生类对象可以使用基类的方法(派生类继承了基类的接口)

派生类需要进行下面的工作:
需要自己的构造函数
可以根据需要添加额外的数据成员和成员函数

派生类构造函数:访问权限
派生类不能直接访问基类的私有成员,而必须通过基类方法进行访问。
具体地说就是,派生类构造函数必须使用基类构造函数。
创建派生类对象的时,程序首先是创建基类的对象,在C++使用成员初始化列表句法来完成继承工作.例如:
son::son(int r,const char *p,const char *pp,bool vb):parent(r,p,vb)
{
    ...
}
当然,也可以省略成员初始化列表
son::son(int r,const char *p,const char *pp,bool vb)
{
    ...
}

如此一来,对象首先被创建,如果不调用基类构造函数,程序将使用默认的基类构造函数,因此上面的构造
方式和下面的构造方式相同:
son::son(int r,const char *p,const char *pp,bool vb):parent()
{
    ...
}
派生类构造函数有一些重要的性质需要注意的:
基类对象首先被创建
派生类构造函数应通过成员初始化列表将基类信息传递给基类构造函数
派生类构造函数应该初始化派生类新增的数据成员
在进行对象释放的时候,顺序与创建对象时是相反的,即派生类对象首先被释放,之后才是基类对象.

1 0
原创粉丝点击