![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
IT_LOVER_
这个作者很懒,什么都没留下…
展开
-
malloc底层实现
malloc 任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的转载 2016-08-23 08:52:08 · 1190 阅读 · 0 评论 -
const volatile mutable的总结
const 一.一般应用 1.const修饰各种变量的用法. a.取代define #define D_INT 100 #define D_LONG 100.29 ……… const int D_INT = 100; const D_INT = 100; //如果定义的int类型,可省略int. const原创 2016-08-21 21:44:46 · 451 阅读 · 0 评论 -
c++封装Rector
最近看了《linux高性能服务器编程》那本书, 上面描述Rector的一张图 对着这图,自己用c++封装了一下, 不知道有什么不足出,请大神们多多指点下。代码如下: 服务器端代码:#include <iostream>#include <unistd.h>#include <cassert>#include <cstdlib>#include <string.h>#include <a原创 2016-08-10 13:36:01 · 628 阅读 · 0 评论 -
new和malloc, delete和free的区别
1.new,delete是一个运算符,可以重载. 而malloc和free是一个库函数。2.malloc仅仅是分配一块内存,而new除了分配内存外还调用类的构造函数对对象数据成员初始化, 同理free仅仅是是放一块内存, delete除了释放内存外还调用类的析构函数。3.malloc返回值是void*, new返回类的指针。4.当内存申请失败时, malloc返回NULL, new则抛出一个异常。原创 2016-05-08 22:06:24 · 685 阅读 · 0 评论 -
virtual
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我看来更像是一种“不得已”的解决方案。多态让对象具有了运行时特性,并且它是软件设计复用的本质,虚函转载 2016-05-06 21:17:58 · 402 阅读 · 0 评论 -
c++继承和多态
c++继承和多态: 1.普通继承派生类对象的内存布局 class Base { public: void show() const { cout << "Base::show()" << endl; } protected: int ma; };class Derive: public Base{public: void原创 2016-05-06 20:57:18 · 672 阅读 · 0 评论 -
typedef和define
typedef和#define的用法与区别 一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT;typedef可以增强程序的可读性,转载 2016-05-05 12:22:52 · 372 阅读 · 0 评论 -
tcmalloc
C++自身实现了malloc方法(glibc库的malloc),另外new的底层实现也调用了malloc,而多次进行malloc,free之后会造成大量的内存碎片问题。所以Google分别从空间和时间两个方面实现了tcmalloc,供调用。实际上,tcmalloc也是通过内存池的机制实现,当然Google的工程师们,思考问题比较极致和全面,所以性能也就比较好,但是这毕竟是一个通用的方案,有时为了照顾转载 2016-05-07 16:04:34 · 640 阅读 · 0 评论