zz 拷贝构造函数及其参数类型

拷贝构造函数的参数类型必须是引用,而且通常情况下还是const的,但是const并不是严格必须的。 #include <iostream> #include <string> using namespace std; class CClass { public: CClass() : a(1), b("Hello, world.") { } // 拷贝构造函数,参数中的const不是严格必须的,但引用符号是必须的 CClass(const CClass&amp;...
默认分类 | 2011-03-31 00:31 | 阅读 868 次 | 评论 0 条

zz 为什么需要auto_ptr_ref

转载自:http://www.udpwork.com/item/2452.html 感谢原作者,本人也被困扰了整一个晚上。 +++++++++++++++++++++++++++++++++++ 这几天开始拜读侯捷先生和孟岩先生的译作《C++标准程序库:自修教程与参考手册》。两位先生确实译功上乘,读得很顺。但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么需要引入auto_ptr_ref这个辅助类呢? 从书中描述来看,仿佛与拷贝构造函数、右值、类型转换有关。于是,结合auto_ptr的源代码,google之、baidu之,找了一推资料,终于初步搞清该问...
默认分类 | 2011-03-31 00:30 | 阅读 963 次 | 评论 0 条

堆内存和栈内存的划分[C][内存管理][转载]

一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 4.另外还有一个专门放常量的地方。- 程序结束释放 ...

zz C语言:typedef详解

1. 基本解释   typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。   在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。   至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。  2. typedef &amp; 结构的问题   当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明...
默认分类 | 2011-03-28 09:24 | 阅读 761 次 | 评论 0 条

程序员那些悲催的事儿

在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”(WTF就是What the fuck的缩写),挺有意思的,我摘几个小故事过来,希望大家在笑过之后能从中学到什么——所有的经验都是从错误中来的(我在其中加了一些点评)我们公司的软件是给警察局用的,那是一个对用来处理被逮捕的人的系统,此系统还需要收集脸部特征和指纹信息,并且,这个系统和会向FBI的系统提交这些信息。当我们在测试这个系统的时候,我们一般都是用我们自己的指纹,当然,数据库联着的是我们的测试数据库。不过,有一次,在我们测试完后,我们忘了把系统切换回生产库,于是...
休息 | 2011-03-27 10:34 | 阅读 1008 次 | 评论 0 条

C++中不常用的关键字

转自:http://pcedu.pconline.com.cn/empolder/gj/c/0412/514980_3.html mutable关键字  关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员  我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,  对像的状态也会随之发生变化!  如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是  该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对类的数据成员  进行赋值.这个时候就需要用到mutable关键字了  例如:  class...

关于C++的 explicit关键字

简而言之:explicit修饰的构造函数不能担任转换函数。首先这个关键字只能用在类构造函数。它的作用是不能进行隐式转换。当构造函数参数超过两个时自动取消隐式转换。但是另外一种情况例外:其中只有一个必须输入的参数,其余的为有默认值的参数。此时隐式转换又开启了。以下是 《ANSI/ISO C++ Professional Programmer's Handbook 》是这样说的explicit ConstructorsA constructor that takes a single argument is, by default, an implicit conversion operat...
浏览25436次