继承的本质和原理
大约 1 分钟
继承的本质和原理
继承的本质
:
代码复用
类和类的关系:
组合: a part of ... ... 一部分的关系
继承: a kind of ... ... 一种的关系
形式
class 派生类
: public/protected/private 基类
{
};
派生类的生成过程包含3个步骤:
- 吸收基类的成员
- 改造基类的成员
- 添加自己新的成员
class A
{
public:
int ma;
protected:
int mb;
private:
int mc;
};
class B : public A//继承:A 基类/父类 B派生类/子类
{
public:
int md;
protected:
int me;
private:
int mf;
};
继承之后:继承基类的成员,基类是12字节,派生类为24字节。

继承之后,还附带了: 若在派生类中加一个ma,成员名字****,内存是28字节。

不能从基类继承下来的
不论何种继承方式,下面这些基类的特征是不能从基类继承下来的:
- 构造函数(包括拷贝构造)
- 析构函数
- 用户重载的operator new/delete运算符
- 用户重载的operator=运算符
- 友元关系