摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 shared_ptr智能指针的一种,它的使用类似于auto_ptr. shared_ptr它有两个指针,一个指向引用计数,一个指向data.由于拥有引用计数,所有shared_ptr支持容器. shared_ptr的源码非常复杂这里也不做太多讲解 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 tuple 是一个可以装载任何变量的容器,C++11的Variadic Templates给tuple的实现带来了极大方便. tuple的实现基于递归继承,例如 结构图如下图 递归继承的优点是,将内存分配在连续片段上,这是在内存管理上非常好的做法 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 由于右值所产生的临时变量问题一直是一种诟病,C++11中引入了右值引用这个核心语言机制,来提升运行期性能. 首先我先说明一下什么是左值和右值: 左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 这次主要介绍C++11的又一个新特性 Variadic Templates (可变模板参数) 它的实现类似于initializer_list<>,它可是使类模板接受一包参数 本节主要应用递归的形式介绍 Variadic Templates 1.简 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 这次主要介绍C++11的Lambda语法,一个非常给力的语法 1.组成 : [...导入符号](...参数)mutable(可改写) throwSpec(抛出异常) ->retType(返回值){...} 2.最简单的Lamdba 输出结果 3. 阅读全文
摘要:
版权声明:本文为博主原创文章,未经博主允许不得转载。 本节主要介绍C++的新特性,对于C++的基础语法不再讲解.由于编译器的不同.在某些地方可能有些差异,但是无太大影响. 讲解本节知识之前先确认你的C++支持度[__cplusplus] 会看到这样,说明支持C++11 主要介绍如下: 新特性 1 模 阅读全文
摘要:
一 要求对象产生在heap中 阻止对象产生产生在non-heap中最简单的方法是将其构造或析构函数声明在private下,用一个public的函数去调用起构造和析构函数 那么调用的时候 虽然也可以构造函数声明成private,但是构造函数的类型比较多(拷贝构造,默认构造,我们必须把这些构造函数都声明 阅读全文
摘要:
一 允许零个或一个对象 我们知道每当即将产生一个对象,我们有一个constructor被调用,那么我们现在想组织某个对象的产生,最简单的方法就是将其构造函数声明成private(这样做同事防止了这个类被继承) 当要使用Printer对象时,就调用thePrinter,它返回Printer的引用且保证 阅读全文
摘要:
1.virtual constructor 在语法上是不可将构造函数声明成虚函数,虚函数用于实现"因类型而异的行为",也就是根据指针或引用所绑定对象的动态类型而调用不同实体.现在所涉及的 virtual-constructor实际上是"仿virtual-constructor. 假设你设计一个软件, 阅读全文
摘要:
条款16 谨记80-20法则 条款17 考虑使用 lazy evaluation(缓释评估) 条款18 分期摊还预期的计算成本 条款19 了解临时对象的来源 条款20 协助完成"返回值的优化"("RVO" return value optimization) 条款21 利用重载技术(overload 阅读全文