Effective 学习之以独立语句将newed对象置入智能指针...
分类:
其他好文 时间:
2014-05-26 03:59:29
阅读次数:
193
C++11新特性
C++11已经推出三年了(2011),编译器GCC4.7、Clang3.1在2012年已经逐渐完善,VS2013也已经支持相关特性,GCC4.8.1支持全部特性。不过新特性似乎在工业界并未得到太多应用,可能出于兼容性和稳定性的考虑吧。
推出的新特性还是相当的丰富,看下面这张图就知道了。我仅仅在这里提一下相对比较容易应用的部分,包括语法上的一些扩展以及改进,lambda表达...
分类:
编程语言 时间:
2014-05-22 09:30:32
阅读次数:
358
面向对象编程--句柄类与继承引言: C++中面向对象编程的一个颇具讽刺意味的地方是:不能使用对象支持面向对象编程,相反,必须使用指针或引用。void get_prices(Item_base object,
Item_base *pointer,
Item_base &reference)
{
//需要根据指针或引用实际所绑定...
分类:
编程语言 时间:
2014-05-15 08:19:33
阅读次数:
359
面向对象编程--句柄类与继承[续]三、句柄的使用 使用Sales_item对象可以更容易地编写书店应用程序。代码将不必管理Item_base对象的指针,但仍然可以获得通过Sales_item对象进行的调用的虚行为。1、比较两个Sales_item对象 在编写函数计算销售总数之前,需要定义比较Sales_item对象的方法。要用Sales_item作为关联容器的关键字,必须能够比较它们。关联容器默认...
分类:
编程语言 时间:
2014-05-15 07:55:23
阅读次数:
255
众所周知,C++中对堆内存的申请与释放完全由用户来控制,这就造成用户在使用的时候经常造成内存泄漏、野指针、重复释放等常见的挂掉问题,所以我们有必要提供一套机制,使得用户只需申请相应的内存,不用管释放的问题,其实这属于著名的RAII(Resource
Acquisition Is Initialization)
技术 。在C++中这种技术称作“智能指针”,C++中的智能指针技术越来越受到广泛应...
分类:
编程语言 时间:
2014-05-13 11:37:49
阅读次数:
358
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include#include#include#includeclassparent;classchildren;typedefboost::shared_ptr
parent_pt...
分类:
其他好文 时间:
2014-05-09 13:01:22
阅读次数:
326
最近正在进行《Effective C++》的第二遍阅读,书里面多个条款涉及到了shared_ptr智能指针,介绍的太分散,学习起来麻烦,写篇blog整理一下。
LinJM @HQU
2014/05/05
shared_ptr是一个智能指针。在C++ 11颁布之前,它包含在TR1(Technical Report 1)当中,现在囊括在C++11的标准库中。
智能指针
智能指...
分类:
其他好文 时间:
2014-05-07 05:50:43
阅读次数:
437
复制控制--管理指针成员引言: 包含指针的类需要特别注意复制控制,原因是复制指针时只是复制了指针中的地址,而不会复制指针指向的对象! 将一个指针复制到另一个指针时,两个指针指向同一对象。当两个指针指向同一对象时,可能使用任一指针改变基础对象。类似地,很可能一个指针删除了一对象时,另一指针的用户还认为基础对象仍然存在。指针成员默认具有与指针对象同样的行为。 大多数C++类采用以下三种方法...
分类:
编程语言 时间:
2014-05-04 17:45:43
阅读次数:
458