C++进阶之继承

个人主页点我进入主页

专栏分类:C语言初阶  C语言进阶  数据结构初阶    Linux    C++初阶     C++进阶​    ​​​​算法

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂

目录

一.继承的定义

1.1定义

1.2继承的方式

1.2.1代码演示

1.2.2继承关系和访问限定符

二.基类和派生类对象的切片

 三.继承中的作用域

四.派生类的默认成员函数

4.1默认构造

4.2拷贝构造

4.3赋值构造和析构

 五.继承中的友元

六.继承与静态成员

 七.棱形继承和虚继承

八.继承面试题

1.c++有多继承,java没有?

2.多继承的问题是什么

3.菱形继承的问题?怎末解决

4.底层是如何解决的


一.继承的定义

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只可以在类里进行访问。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steventom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值