- 博客(5)
- 收藏
- 关注
转载 asser断言 (转载)
<br /><br />assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:<br />#include <assert.h><br />void assert( int expression );<br />assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,<br />然后通过调用 abort 来终止程序运行。<br />请看下面的程序清单badptr.c:<br />#inclu
2011-04-13 22:09:00 721
原创 C++ handle classes
<br />C++中,使用handle classes(句柄类)的目的,是为了降低文件之间的编译依存关系。<br /><br /><br />摘自网上的一段话:<br /> 需要句柄类的背景: <br /> 1)在对安全要求很高的领域,即使核心实现已经封闭在库中不可见,但头文件中变量定义仍可能曝露一些内部信息 <br />2)在设计初期、实现部分会经常变动,甚至头文件中变量定义也需要经常变动,因此在重编译的时候头文件也需要编译,有时候导致编译时间过长。 句柄类就是为了解决这类问题<br /><b
2011-04-12 09:52:00 7905 2
转载 C++ const引用详解
<br /><br />文章转自 http://blog.csdn.net/k2eats/archive/2008/06/12/2541790.aspx<br /><br /><br /><br />(1) 在实际的程序中,引用主要被用做函数的形式参数--通常将类对象传递给一个函数.引用必须初始化. 但是用对象的地址初始化引用是错误的,我们可以定义一个指针引用。<br />1 int ival = 1092;<br />2 int &re = ival; //ok<br />3 int &r
2011-04-10 10:40:00 839
原创 non-local static 变量初始化顺序不确定,带来的问题
所谓static对象,其寿命从被构造出来直到程序结束为止,因此stack和heap-based对象都被排除。这种对象包括global对象、定义于namespace作用域内的对象,classes内、在函数内、以及在file作用域内被声明为static的对象。函数内的static对象称为local static对象(因为它们对函数而言是local),其他static对象成为non-local static对象,在程序结束时static对象会被自动销毁,也就是他们的析构函数会在main()结束时被调用
2011-04-08 15:59:00 3430 1
原创 C++ 深拷贝和浅拷贝 (转载,感谢作者)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std;class CExample {private: int a;public: CExample(int b) { a=b;} void Show () {
2011-04-07 21:33:00 533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人