
C++
文章平均质量分 83
One2zeror
这个作者很懒,什么都没留下…
展开
-
智能指针(smart pointer)(2):unique_ptr
Unique pointer: Manages the storage of a pointer, providing a limited garbage-collection facility, with little to no overhead over built-in pointers (depending on the deleter used). These obje原创 2015-06-18 18:53:27 · 1033 阅读 · 0 评论 -
智能指针(smart pointer)(1):auto_ptr
智能指针解决了资源生存期管理的问题(尤其是动态分配的对象)。智能指针有各种不同的风格。多数都有一种共同的关键特性:自动资源管理。这种特性可能以不同的方式出现:如动态分配对象的生存期控制,和获取及释放资源 (文件, 网络连接)。这里主要讨论第一种情况,它们保存指向动态分配对象的指针,并在正确的时候删除这些对象。 何时我们需要智能指针? 有三种典型的情况适合使用智能指针: • 资源所有权的原创 2015-06-18 10:34:14 · 978 阅读 · 0 评论 -
C++ Gotchas && FAQ(2)
G14.new && malloc() new是一个关键字,malloc是一个函数 构造函数/析构函数:与 malloc(sizeof(Fred))不一样,new Fred() 调用 Fred 的构造函数。同样,delete p 调用 *p 的析构函数。 类型安全:malloc() 返回一个没有类型安全的 void* 。new Fred() 返回一个正确类型(一个 Fred*)原创 2015-05-08 21:57:46 · 577 阅读 · 0 评论 -
C++语言体系设计哲学的一些随想
对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值。具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符。该类型的数据可以包含的值的范围是什么。 (2)定义操作的含义 操作是严格数据类型相关的。操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果。 ===========================================转载 2015-06-04 14:41:23 · 1038 阅读 · 0 评论 -
C++ Gotchas && FAQ(1)
G1.魔数 所谓魔数和魔字符串就是指在代码中出现但没有解释的数字常量或字符串。如果在某个程序中你使用了魔数,那么在几个月(或几年)后你将很可能不知道它的含义是什么。(百度百科) 看下面这个例子: class students{ T courses[10]; …… }; 上面的数字10就是一个魔数,那它是代表一个最大限定值,还是实际大小,亦或其他?对于维护人员,会造成原创 2015-05-08 20:51:37 · 605 阅读 · 0 评论 -
C++泛型 && Java泛型实现机制
C++泛型 C++泛型跟虚函数的运行时多态机制不同,泛型支持的静态多态,当类型信息可得的时候,利用编译期多态能够获得最大的效率和灵活性。当具体的类型信息不可得,就必须诉诸运行期多态了,即虚函数支持的动态多态。 对于C++泛型,每个实际类型都已被指明的泛型都会有独立的编码产生,也就是说list<int>和list<string>生成的是不同的代码,编译程序会在此时确保类型安全性。由于知道对象确原创 2015-08-28 22:24:16 · 3243 阅读 · 0 评论