引言 C++使用虚函数来实现多态机制,大多数编译器是通过虚函数表来实现动态绑定。 类的内存布局 1.普通类 类中只有普通成员变量,对象在内存中顺序存储成员变量。输出: 2.有虚函数的类 先看输出结果: 我们看到,这个对象的内存占用比上一个多了8个字节,其中成员变量m的地址也和对象b的地址不一样了,正 ...
分类:
其他好文 时间:
2020-01-05 15:40:19
阅读次数:
71
C++虚函数的主要作用是实现多态。 多态,即父类指针可能指向父类对象,也可能指向子类对象,会根据运行时具体指向的对象,来调用不同的函数。 每个包含虚函数的类(也叫虚类),都有一个虚函数表(简称虚表),表项是一个虚函数的地址。虚类的对象最前面都是一个虚表指针,指向类的虚表。 ...
分类:
编程语言 时间:
2020-01-04 01:25:50
阅读次数:
82
前言 webrtc中为了保证线程安全,在线程中使用消息队列机制处理消息 正文 举一个创建PeerConnectionFactory时的例子为例;此处已经创建了PeerConnectionFactory对象 pc_factory,此时需要对其进行Initialize()操作,首先创建了一个方法调用器 ...
分类:
编程语言 时间:
2020-01-02 22:53:55
阅读次数:
196
基础:虚函数的使用 虚函数的定义: 在函数的返回类型之前使用virtual 只在成员函数的声明中添加virtual, 在成员函数的实现中不要加virtual 虚函数的继承: ?如果某个成员函数被声明为虚函数,那么它的子类【派生类】,以及子类的子类中,所继承的这个成员函数,也自动是虚函数。 ?如果在子 ...
分类:
其他好文 时间:
2020-01-02 18:36:49
阅读次数:
68
dynamic_cast转换 dynamic_cast执行两步操作,先验证转换是否有效,有效则进行实际转换 typeid操作符 类类型包含虚函数时,typeid的结果存在多态性 ...
分类:
其他好文 时间:
2019-12-31 17:05:57
阅读次数:
91
1.有了虚函数,基类指针指向基类对象时就使用基类的成员(包括成员函数和成员变量),指向派生类对象时就使用派生类的成员。换句话说,基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种形态,或者说有多种表现方式,我们将这种现象称为多态(Polymorphism)。 2. 为了方便,你 ...
分类:
编程语言 时间:
2019-12-30 17:16:52
阅读次数:
85
【类与类之间的关系】 一、Composition复合,类A内有类B。 二、Delegation委托,类A内有类B,但是是通过指针关联起来的。 三、Inheritance继承,类A:类B,类A继承了类B。最经典用法:继承+虚函数。 设计父类要点: 父类中的函数,尽可能是子类都会用的函数。 父类中无法具 ...
分类:
编程语言 时间:
2019-12-28 23:07:07
阅读次数:
118
1.多态的基本概念 多态是C++面向对象三大特性之一 多态分为两类: 静态多态:函数重载 和 运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态 静态多态 和 动态多态 区别: 静态多态的函数地址早绑定——编译阶段确定函数地址 动态多态的函数地址晚绑定——运行阶段确定函数地址 ...
分类:
编程语言 时间:
2019-12-27 23:19:30
阅读次数:
123
一些零零散散的知识点... 1.抽象类只能作为其他类的基类,不能建立对象,但抽象类的派生类如果给出纯虚函数的函数体,这个派生类仍然是一个抽象类。//这个好理解 懂了 2.抽象类不能作为参数类型,函数的返回类型或者显式转化的类型。//不懂,先存着。 3.C++要求对一般的内置函数要用关键字inline ...
分类:
编程语言 时间:
2019-12-24 13:52:00
阅读次数:
137
多态小案例 + C面向接口编程和C多态 函数类型语法基础 函数指针做函数参数(回调函数)思想剖析 函数指针做函数参数两种用法(正向调用、反向调用) + 纯虚函数 抽象类 抽象类基本概念 抽象类在多继承中的应用 面向抽象类编程案例强化 + 面向抽象类编程案例强化 + 抽象类在多继承中的应用 + 抽象类 ...
分类:
编程语言 时间:
2019-12-22 14:34:18
阅读次数:
90