1:继承的本质和原理

2:派生类的构造过程

3:重载,覆盖,隐藏

4:静态绑定和动态绑定

5:多态,vfptr,vftable

6:抽象类的设计原理

7:多重继承以及问题

8:虚基类 vbptr 和vbtable

9:RTTI

10:C++四种类型强转

继承的本质和原理

1:代码的复用

类和类之间的关系

组合: a part of ..... 一部分的关系

继承: a kind of ..... 一种的关系

//代码1:
class A{ public:
int ma;
protcted:
int mb;
private:
int mc; } class B{
public:
int md;
int ma;
potected:
int me;
int mb;
private:
int mf;
int mc; } 代码2: class A{ public:
int ma;
protcted:
int mb;
private:
int mc; } //B继承 A,
class B : public A{
public:
int md;
potected:
int me;
private:
int mf;
}

如上图,B继承A,那么B中对A 的ma ,mb,mc 的访问方式是怎么样的?能否访问?如下

class B : public A{
public:
int md;
void f(){
cout<<ma<<endl ; // ??????
}
potected:
int me;
private:
int mf;
}

1:父类的私有成员,子类不管是public,protected,private 哪种方式继承,子类中都是不可见的(注意不是private)

2:外部只能访问public成员,protected和private 的成员无法直接访问

3:在继承结构中,派生类从基类可以继承过来private成员,但是派生类中是看不见的(无法直接访问)

4:protected和private的区别?在基类中定义的成员,想被派生类访问,不想被外部访问,那么在基类

把相关成员定义成protected的,如果派生类和外部都不打算访问,那么在基类中,就把想关成员定义成private私有的

看下面继承方式

class  A{

public:
int ma;
protcted:
int mb;
private:
int mc;
} //B私有 继承 A,
class B : private A{
public:
int md;
potected:
int me;
private:
int mf;
} class C : public B{
public:
void function(){
ma,mb ,mc md, me,mf ;的访问权限是什么? ma 在 A 中是共有成员 -> 到B中 变成私有成员了 -》 C 中就不可见了
mb 在 A 中是保护成员 -> 到B中 变成了私有成员了-> c 中不可见
mc 在 A 中是私有成员 -> 到B中 不可见 -> C中也不可见 md 在 B 中四 共有成员 -> C中还是共有 -> main(外部)可访问
me 在 B 中四 保护成员 -> C中还是保护(C中可访问) -> main(外部)不可访问
mf 在 B 中四 私有成员 -> C中不可见 -> main(外部)不可见 }
}

默认的继承方式是什么?

要看派生类是用class定义的还是struct定义的?

class定义的派生类,默认继承方式是private私有的

struct定义的派生类,默认继承方式是public的

<一>继承的基本意义的更多相关文章

  1. C++中组合和继承的概念及意义

    1,继承在面向对象中具有举足轻重的地位,面向对象当中的很多高级技术都和继承是息息相关的,比如面向对象的高端课程<设计模式>中的每一种技术都和继承有关,因此我们非常有必要在学习 C++ 时, ...

  2. 谈谈JavaScript的2种主要继承方式

    今天给自己巩固一下js的继承知识,基础不好,有不对的地方,请尽量拍砖,越重越好. js继承方法最主要的是2种,一种是通过原型的方式,一种是通过借用call&apply的构造函数方式. 1.原型 ...

  3. 《JS高程》实现继承的6种方式(完整版)

    许多OO语言都支持 两种继承方式: (1)接口继承:只继承方法签名: (2)实现继承:继承实际的方法. ECMAScript 由于函数没有签名,无法实现接口继承,因此只支持实现继承,而且主要是依靠原型 ...

  4. JavaScript中的继承模式总结

    一.总结: //js中的几种继承 //原型链的问题,包含引用类型的原型属性会被实例共享,子类型无法给超类型传递参数 function SuperType() { this.colors = [&quo ...

  5. c# 事件为何要继承EventArgs

    1:继承EventArgs是表示该类可作为事件,删掉了就默认继承object,没人会说你错 ----就是说事件不继承EventArgs 也没有错,也能正常运用,那么继承他的意义是什么呢?看2,3. 觉 ...

  6. O-c中类的继承与派生的概念

    什么是继承 众所周知,面向对象的编程语言具有: 抽象性, 封装性, 继承性, 以及多态性 的特征. 那么什么是继承呢? 传统意义上是指从父辈那里获得父辈留下的东西 在开发中, 继承就是"复用 ...

  7. java的三大特征:封装,继承和多态

    有点递进关系,继承增加了代码的复用性,多态必须基于继承才可以实现. 一.封装 使用原因:当我们没有为类进行封装的时候,类中定义的属性可以被外界随意访问,这样容易造成一些合法性的问题.封装可以非常好的解 ...

  8. JavaScript中的继承模式总结(九)

    一.总结: //js中的几种继承 //原型链的问题,包含引用类型的原型属性会被实例共享,子类型无法给超类型传递参数 function SuperType() { this.colors = [&quo ...

  9. CSS学习摘要-层叠和继承

    当有多个选择器作用在一个元素上时,哪个规则最终会应用到元素上? 其实这是通过层叠机制来控制的,这也和样式继承(元素从其父元素那里获得属性值)有关. 元素的最终样式可以在多个地方定义,它们以复杂的形式相 ...

  10. 《挑战30天C++入门极限》C++类的继承与多重继承的访问控制

        C++类的继承与多重继承的访问控制 在前面的练习中我们一直在使用public的继承方式,即共有继承方式,对于protected和private继承方式,即保护继承与私有继承方式我们并没有讨论. ...

随机推荐

  1. 三分钟,带你了解PLM

    PLM应用于单一地点或者多个地点的企业内部.以及在产品研发领域具有协作关系的企业之间的.支持产品全生命周期的信息的创建.管理.分发和应用的综合性的应用解决方案,能够集成与产品相关的流程.应用系统和信息 ...

  2. 【To B产品怎么做?】泛用户体验

    目录 - 什么是泛用户体验? - 如何做好泛用户体验? - 泛用户体验有什么用? *预计阅读时间15分钟 不知道你有没有过这种体验,客服妹子的声音软糯,氛围微妙,用词标准,张口就是:给你带来了不好的体 ...

  3. Coprime

    Coprime 前置芝士 莫比乌斯反演 正文 首先,我们来分析题意. 题目中给出 \(n\) 个人,每个人有一个编号 \(k\) ,要求我们从中选出 \(3\) 个人,三人编号分别为 \(k_a\) ...

  4. 怎样编写正确、高效的 Dockerfile

    基础镜像 FROM 基础镜像 基础镜像的选择非常关键: 如果关注的是镜像的安全和大小,那么一般会选择 Alpine: 如果关注的是应用的运行稳定性,那么可能会选择 Ubuntu.Debian.Cent ...

  5. AlertManager 何时报警

    转载自:https://www.qikqiak.com/post/alertmanager-when-alert/ 在使用 Prometheus 进行监控的时候,通过 AlertManager 来进行 ...

  6. ProxySQL(3):Admin管理接口

    文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9281199.html ProxySQL的Admin管理接口 当ProxySQL启动后,将监听两个端口: (1 ...

  7. 8. Ceph 基础篇 - 运维常用操作

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485300&idx=1&sn=aacff9f7 ...

  8. Elasticsearch 堆内存

    转载自:https://www.lbbniu.com/6148.html 1.什么是堆内存? Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象. 在 Java 中, ...

  9. PAT乙级 1024 科学计数法

    思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...

  10. 洛谷 P5607 [Ynoi2013] 无力回天 NOI2017

    人生第一道Ynoi,开心 Description https://www.luogu.com.cn/problem/P5607 Solution 拿到这个题,看了一下,发现询问要求最大异或和,怎么办? ...