![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 59
马兰花呀
有一种美叫不怒而威!
展开
-
虚函数和纯虚函数的区别
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。 1、简介 假设我们有下面的类层次: class A{public: virtual void foo(...转载 2021-03-29 15:38:03 · 179 阅读 · 0 评论 -
深浅拷贝到底是什么呢
浅拷贝:所谓的浅拷贝就是拷贝指向对象的指针(拷贝出来的目标对象的指针和源对象的指针指向的内存空间是同一块空间)。 浅拷贝只是一种简单的拷贝,让几个对象公用一个内存,然而当内存销毁的时候,指向这个内存空间的所有指针需要重新定义,不然会造成野指针错误 深拷贝:所谓的深拷贝指拷贝对象的具体内容,其内容地址是自助分配的,拷贝结束之后,内存中的值是完全相同的,但是内存地址是不一样的,两个对象之间相互不影响,也互不干涉. 我们来总结一下两者之间的原理 : 如果现在有一个A对象,拷贝之后得到一份新的对象A_C..原创 2021-03-29 14:08:14 · 633 阅读 · 0 评论 -
如何理解封装、继承、多态这三大特性
面向对象的三个基本特征是:封装、继承、多态。 我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是:代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。 封装: 封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。...转载 2021-03-20 18:07:07 · 886 阅读 · 0 评论 -
C++中的STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的...转载 2021-03-18 15:21:14 · 196 阅读 · 0 评论 -
C++多态的实现和原理
多态的实现 虚函数原理 一、在编译期间实现多态 多态是指在不同的条件下表现出不同的状态,C++中通过重载函数的方法可以在编译期间实现多态。 在编译时编译器会根据参数列表的不同寻找合适的函数。 int Add(int left, int right) { return left + right; } double Add(double left, int right) { return left + right; } int main() { Add(10, 20); Add(10.0,2转载 2021-03-10 17:24:46 · 182 阅读 · 0 评论 -
多态是什么
多态(Polymorphism)按字面的意思就是“多bai种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实.转载 2021-01-17 12:23:54 · 1448 阅读 · 0 评论