专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C++初阶 C++进阶 算法
欢迎大家点赞,评论,收藏。
一起努力,一起奔赴大厂
目录
一.继承的定义
1.1定义
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继 承是类设计层次的复用。简单来说就是继承就是一个类获得另一个类的一些成员,我们把一个成为派生类,父类为基类。继承就是针对一些特殊的情况所产生的,当几个类有一些相同的成员我们可以把这些成员给到一个类中,然后继承。
1.2继承的方式
我们的继承方式如下:
其中继承方式有三种 public,protected ,private这三种
1.2.1代码演示
class Person
{
public:
int _day = 234;
protected:
int _month = 23;
private:
int _year = 2;
};
class Student :public Person
{
private:
string _name="张三";
};
在这里我们的类Student继承了类Person,继承方式是public,我们进入调试可以看到:
实际上在这个调试页面有一些不准确,这和我们继承方式以及类的成员的访问限定符有关,我们往下看:
1.2.2继承关系和访问限定符
基类的private在派生类里和类外都不可见(无论继承方式是什么样的),我们看下面样例:
class Student :private Person
{
public :
void func()
{
cout << Person::_year << endl;
}
private:
string _name="张三";
};
我们可以看到报错
所以无法访问。继承方式是public,基类的成员访问限定符是什么样子类的限制就是什么样子的。继承方式是protected基类的成员访问限定符最高为protected,继承方式是private基类成员的访问限定符最高为private,总之我们可以总结为基类成员在子类的访问方式=min(访问限定符,成员的访问限定符),其中public>protected>private。基类的成员public可以在类里类外进行访问,protectec只可以在类里进行访问。