
C++
FDk_LCL
我没有很好的运气,所以只能靠自己去拼搏!
展开
-
深入理解静态绑定,动态绑定及虚函数实现机制
目录静态绑定和动态绑定虚函数实现机制静态绑定和动态绑定静态绑定和动态绑定实际上是针对C++动多态机制而言的。所谓的绑定指的是函数的绑定,对于静态绑定,其函数的地址是在编译时期就已经确定了,而动态绑定是在运行时期才能确定,在汇编层次实际上是call一个寄存器。静态绑定也是对非虚函数的绑定,动态绑定是对虚函数的绑定。虚函数实现机制什么是虚函数?对于类的成员方法在其前面加上virtul关键字进行修饰,那么该成员函数就变成了虚函数。先看一下代码:class Base {public:原创 2020-09-14 23:47:27 · 480 阅读 · 0 评论 -
关于智能指针,你想要的都在这里
智能指针介绍 自己实现智能指针 不带引用计数的智能指针 带引用计数的智能指针shared_ptr、weak_ptr 智能指针的交叉引用(循环引用)问题 多线程访问共享对象问题 自定义删除器原创 2020-09-14 09:53:43 · 345 阅读 · 0 评论 -
string容器简单实现
string字符串在代码编辑中常常出现,本文主要介绍string内部常用函数的实现过程,关键点包含运算符的重载,左值拷贝和右值拷贝,左值运算符重载和右值运算符重载及迭代器的实现过程。相关函数未完全给出,以后会不断更新,敬请期待#include<iostream>#include<cstring>using namespace std;class St...原创 2020-04-14 16:46:09 · 335 阅读 · 0 评论 -
C++-----STL - 容器空间配置器alloccator详解
目录实现一个简单的vector容器vector容器面临问题容器空间配置器实现带空间配置器的vector容器实现一个简单的vector容器容器是C++的一个重要组成部分,每一个容器都有一个空间配置器,虽然我们在使用容器的时候并没有感受到它,但是它的确是存在的。那么我们发出提问,容器的空间配置器到底有什么作用呢???别急,让我们先来实现一个简单的vector容器(无空间配置器...原创 2019-04-22 17:47:23 · 427 阅读 · 0 评论 -
C++-----SGI STL空间配置器(一)一级空间配置器 _malloc_alloc_template
C++ STL 容器在一定程度上简化了代码的书写过程。以STL运用的角度而言,我们并不需要了解空间配置器,因为它总是隐藏在一切组件的背后;但是如果我们就STL的实现角度而言,我们则需要深入了解容器空间配置器。本博文主要讲述SGI STL一级空间配置器目录new/delete操作construct()/destroy()allocate()/deallocate()/reallo...原创 2019-04-23 22:18:15 · 409 阅读 · 0 评论 -
C++-----浅谈内存碎片
目录内存碎片定义外碎片和内碎片内存碎片的产生内存碎片定义内存碎片即“碎片的内存”,它分为外碎片和内碎片,内存碎片描述一个系统中所有不可用的空闲内存,这些碎片之所以不能被使用,是因为负责动态分配内存的分配算法使得这些空闲的内存无法使用,这一问题的发生,原因在于这些空闲内存小且以不连续方式出现在不同的位置。因此这个问题的或大或小取决于内存管理算法的实现上。外碎片和内碎片外...原创 2019-04-23 23:47:59 · 6851 阅读 · 4 评论 -
C++-----SGI STL空间配置器(二)二级空间配置器 __default_alloc_template
考虑到小型区块所可能造成的内存碎片问题,SGI设计了双层级配置器,第一级配置器参见博文https://blog.youkuaiyun.com/FDk_LCL/article/det ails/89457601。在这里我们讲重点介绍第二级空间配置器。第二级空间配置器多了一一些机制,避免太多小额区块造成内存碎片的问题,(关于内存碎片可以参考博文https://blog.youkuaiyun.com/FDk_LCL/a...原创 2019-04-24 18:41:57 · 401 阅读 · 0 评论 -
C++-----对象的生命周期(一)
C++和C的不同点之一在于C++通过类来定义对象,那么对象何时产生,是否需要释放呢???本篇文章将会针对对象的生命周期做出详细介绍。关于对象的生命周期,我们需要了解类的构造函数,析构函数,拷贝构造函数,赋值运算符重载函数等等。(具体可以参照我的博文https://mp.youkuaiyun.com/postedit/89514819)。首先我们给出以下代码:#include<iostr...原创 2019-04-26 00:10:17 · 782 阅读 · 0 评论 -
C++-----对象的生命周期(二)
知识的积累在于日积月累,每天掌握一点点,你会变得更加强大。关于如何分析对象的生命周期,可以参照博文(https://mp.youkuaiyun.com/postedit/89514602)。本片文章主要针对如何对程序进行优化,减少一些无关函数的调用,以提高程序的执行效率。我们首先给出一段程序:#include<iostream>using namespace std;clas...原创 2019-04-26 01:10:59 · 386 阅读 · 0 评论 -
C++-----详谈this指针
C++中this指针就像是一个害羞的孩子,总是藏在一个隐蔽的地方。但是它却拥有着强大的功能,是C++中不可缺少的部分,下面我们就针对它做出详细介绍。我们首先来看一段代码:#include<iostream>using namespace std;class Test{public: Test(int data = 0):ma(data){} //构造函数...原创 2019-04-26 14:45:59 · 234 阅读 · 0 评论 -
C++-----继承那些事儿(一)
善有恒何必三更眠五更起,最无益莫过一日瀑十日寒。每天进步一点点,终会成为梦想的自己。目录何为继承单继承和多继承派生类中,从基类继承来的成员的访问限定派生类怎么初始化从基类继承来的成员基类和派生类同名成员函数之间的关系赋值兼容性规则何为继承C++作为一种面向对象编程语言,其好处之一就是代码的复用。为了实现代码的复用C++采用方式之一就是通过继承。所谓继承就是从...原创 2019-05-20 23:07:53 · 223 阅读 · 0 评论