一、 继承的概念相关:
1、概念
在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。
继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生的新类称派生类。
2、格式:
3、作用:
1、)代码复用
2、)实现多态
二、代码分析继承
1、一段简单的代码展示继承
class Base
{
private:
int _pri;
protected:
int _pro;
public:
int _pub;
};
class Derived:public Base
{
private:
int _priD;
protected:
int _proD;
public:
int _pubD;
};
int main()
{
cout << sizeof(Derived) << endl;//24
return 0;
}
有没有继承下来,看派生类的大小即可
大小为24,即继承下来了,
(1)派生类继承下来基类的公有成员变量也是公有的;
(2)基类的私有成员在基类里可以访问,但在派生类里无法直接访问,是基类里的隐私
(3)将基类里保护的成员继承下来,要么是私有的,要么是保护的——问题?哪一个呢?下面我们就一起研究一下
2、继承的方式
猜测一下上面的继承问题
猜测:保护(基类)———private, protected(派生类)
假设:protected—派生一层
class Base
{
public:
void SetValue(int pri, int pro, int pub)
{
_pri = pri;
_pro = pro;
_pub = pub;
}
private:
int _pri;
protected:
int _pro;
public:
int _pub;
};
class Derived:public Base
{
public:
void SetValueD(int pri, int pro, int pub)
{
}
private:
int _priD;
protected:
int _proD;
public:
int _pubD;
};
//验证公有的继承方式
class D:public Derived
{
public:
void FunTest()
{
_pro = 5;
_proD = 10;
}
};
int main()
{
cout << sizeof(Derived) << endl;
Derived d;
d.SetValue(10, 20, 30);
return 0;
}