C++
文章平均质量分 68
liudan217
这个作者很懒,什么都没留下…
展开
-
分析一个好玩的c语言程序
前两天看到这么一个程序。代码如下:#include int main(){const short int c1 = 49920;const int c2 = 1073742008;int (*pf)() = (int (*)())&c2;printf("%c%c\n", *(char*)pf()-19, *((char*)pf()+1)-49);retu转载 2012-10-10 15:39:51 · 1758 阅读 · 1 评论 -
leveldb源码阅读知识积累2
Arena 1,typedef _W64unsignedint uintptr_t;为了在64位系统上运行32位程序2,类类型的数据成员的初始化?Arena::Arena() :memory_usage_(0) {}3,析构函数Arena::~Arena(){ for (size_ti = 0;iblocks.size();i++)原创 2016-06-23 08:13:32 · 290 阅读 · 0 评论 -
leveldb阅读知识点积累
=====================================================================Slice =====================================================================1,namespace同一命名空间使用变量不需要加命名空间前缀,在命名空间外使用需要加,如s原创 2016-06-21 21:16:25 · 391 阅读 · 0 评论 -
一句话解说内存屏障 Memory barrier
一句话解说内存屏障 Memory barrier 2011-03-17 16:39:02分类: C/C++内存屏障 Memory barrier By zieckey All Right Reserved内存屏障,可以保证在此之前的代码全部执行完才开始执行在此之后的代码参考wikipedia的定转载 2016-06-21 18:30:06 · 1121 阅读 · 0 评论 -
关键字explicit
关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AA转载 2016-06-21 18:16:53 · 254 阅读 · 0 评论 -
const在函数前与函数后的区别
const在函数前与函数后的区别 一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b; [2] int* const转载 2016-06-21 10:00:31 · 332 阅读 · 0 评论 -
vector::resize()
resize()的作用是改变vector中元素的数目。如果n比当前的vector元素数目要小,vector的容量要缩减到resize的第一个参数大小,既n。并移除那些超出n的元素同时销毁他们。如果n比当前vector元素数目要大,在vector的末尾扩展需要的元素数目,如果第二个参数val指定了,扩展的新元素初始化为val的副本,否则按类型默认初始化。转载 2016-06-20 15:18:11 · 459 阅读 · 0 评论 -
图说C++对象模型:对象内存布局详解
阅读目录0.前言1.何为C++对象模型?2.文章内容简介3.理解虚函数表3.1.多态与虚表3.2.使用指针访问虚表4.对象模型概述4.1.简单对象模型4.2.表格驱动模型4.3.非继承下的C++对象模型5.继承下的C++对象模型5.1.单继承5.2.多继承6.虚继承6.1.虚基类表解析6.2.简单虚继承6.3.虚拟菱形继承转载 2016-06-20 09:26:27 · 383 阅读 · 1 评论 -
leveldb源码阅读知识积累4
MemTable1,函数指针形式1: 返回类型(*函数名)(参数表) 使用typedef更直观更方便形式1:typedef 返回类型(*新类型)(参数表)1. typedef char (*PTRFUN)(int); 2. PTRFUN pFun; 3. char glFun(int a){ return;} 4. vo原创 2016-07-01 16:39:23 · 384 阅读 · 0 评论 -
设计模式---Builder模式
设计模式初学者笔记:Builder模式在本文的开头,先森森的鄙视下自己……将Builder模式反反复复读了七八遍,才敢说自己对其有了初步的了解。这比花在Abstract Factory上的时间长多了。如果GoF将Builder模式放在第一个讲,估计我就会把这本书归结成天书直接扔一边了。 Builder模式的关键在于,将“要做什么”与“做出来”分离,将“如何装配”与“完成装配”分离转载 2016-06-28 19:22:57 · 366 阅读 · 0 评论 -
leveldb代码阅读知识积累3
SkipList 1,模板templatetypenameKey, class Comparator>class SkipList{ }2, 关于C++中模版常用的的typename和class,先写结论吧:· 在声明模版参数时,class和typename关键是等价的,可以相互替换。· 在涉及“嵌套依赖类型名”(nested原创 2016-06-25 13:52:43 · 394 阅读 · 0 评论 -
my1.exec()==QDialog::Accepted
f(my1.exec()==QDialog::Accepted)my1是一个对话框,当调用exec方法时,弹出,等待用户响应,用户可能点击确定,那么exec返回QDialog::Accepted值,如果点击取消则返回QDialog::Rejected,这句话是通过返回值来确定用户的响应结果1.如果使用exec()默认为模态的。如果用show()需要设置setMode转载 2016-06-23 19:27:25 · 10656 阅读 · 0 评论