C/C++
文章平均质量分 55
duanruibupt
啊
展开
-
定义交换两个数的宏
#define swap(a,b) (a)^=(b)^=(a)^=(b)要点:1、元素加小括号,为了防止swap(1+2,2+3)这种情况。 2、采用异或的方式,防止溢出。另,#define swap(a,b) do{a原创 2011-09-25 10:57:15 · 837 阅读 · 0 评论 -
智能指针的原理及实现方案
本文主要讨论C++程序设计的一种常用技术——智能指针(smart pointer),主要内容包括引用计数(reference count)和句柄类(handle class)。如果文中有错误或遗漏之处,敬请指出,谢谢! 作者: tyc611, 2007-02-01转载 2011-09-25 10:44:57 · 520 阅读 · 0 评论 -
引用参数与引用返回值,临时对象
经常看到这样的声明:T& func(T& t),这种声明和T func(T t)有什么区别?书上的解释是为了提高效率,究竟是如何提高效率的呢?内部执行了什么操作?本文通过8个小例子对引用参数和引用返回进行了一次彻底的排查。 首先看一下在类的成员函数中的引用参数和引用返回转载 2011-10-17 13:43:28 · 2814 阅读 · 0 评论 -
类的常量数组如何初始化
文章出处:http://blog.csdn.net/dadalan/article/details/3864963(1).将a[10]转移到类层次中,即将const int a[10]改为static const int a[10],你可以认真的想一想,既然a[10]是const,那么每一个对象真的需要单独的一份a[10]吗?大部分时候答案应该是no。现在类定义如下:转载 2011-10-21 20:33:03 · 3246 阅读 · 0 评论