弱回调

2017-05-06
阅读 2 分钟
3.2k
弱回调 {代码...} {代码...} {代码...} {代码...}

effective C++ : CHAPTER 8

2017-04-28
阅读 2 分钟
1.4k
继承自 NewHandlerSupport的每个class,拥有实体互异的NewHandlerSupport复件。 Template机制会自动为每一个T生成一个currentHandler

C++ inline关键字

2017-04-24
阅读 1 分钟
2.2k
误解三:virtual函数即使声明为inline,由于是late binding,无法判断实际调用的版本,编译器也无法展开。事实:虚函数调用并不总是late binding;late binding发生在通过指针或引用来调用函数的时候,在其它情况下理论上是可能对 virtual inline的函数进行展开的

C++ : vector与string的内存分配问题

2017-04-22
阅读 1 分钟
2.1k
{代码...}

设计模式:observer

2017-04-19
阅读 1 分钟
1.9k
结构图 代码 {代码...} {代码...}

设计模式 : singleton

2017-04-19
阅读 1 分钟
1.4k
线程安全的Singleton实现 {代码...}

C++ : share_ptr

2017-04-18
阅读 2 分钟
1.7k
share_ptr 循环引用导致的内存泄露 {代码...} 意外延长对象的生命期 容器存放shared_ptr对象 {代码...} Solution 1 {代码...} Solution 2 {代码...} std::bind in C++11 {代码...} define custom destructor {代码...}

C++ : 智能指针

2017-04-18
阅读 1 分钟
1.7k
{代码...} {代码...}

深度探索C++对象模型 chapter 3

2017-03-09
阅读 2 分钟
1.8k
Data 语意学 {代码...} {代码...} 3.1 Data Member 的绑定 1. 对member function本体的分析,会直到整个class的声明都出现了才开始 {代码...} 2. 对member function的argument list的分析,是当即完成的。 {代码...} 3.2 Data Member 的布局 Nonstatic data members在class object中的排列顺序将和其被声明的顺序一样 3....

深度探索C++对象模型 chapter 2

2017-03-07
阅读 2 分钟
1.5k
Q: 什么时候才会合成一个default constructor ? A: 当编译器需要它的时候。 Q: 什么时候?A: 如下四种情况1.带有 default constructor 的 member class object2.带有 default constructor 的 base class3.带有 virtual function 的 class(声明或继承)4.带有 virtual Base Class" 的 class

深入探索C++对象模型 chapter 1

2017-02-24
阅读 2 分钟
1.8k
3种 class member functions: static、nonstatic 和 virtual 2种 class data members: static 和 nonstatic

Effective C++ 5.实现

2017-01-04
阅读 6 分钟
1.4k
“尽可能延后”的真正意义:1)不只应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至 2)应尝试延后定义直到能提供初值实参为止第二点的原因:通过默认构造函数构造出一个对象然后对它赋值”比“直接在构造函数时制定初值”效率差

Effective C++ 4.设计与声明

2016-12-22
阅读 4 分钟
1.5k
【Summary】1. 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。2. “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。3. “阻止误用”的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。4. tr1::shared_ptr支持定制删除器。这可防范D...

Effective C++ 3.资源管理

2016-12-21
阅读 3 分钟
2.4k
资源管理 条款13: 以对象管理资源 【Problem】 {代码...} 【Solution. 1】 使用auto_ptr智能指针确保资源的释放,避免内存泄露 {代码...} 【Key Points】 “以对象管理资源”的两个关键想法:1. 获得资源后立刻放进管理对象内(如auto_ptr)2. 管理对象运用析构函数确保资源被释放 【Attention】 auto_ptr的限制,举例: {...