03 2017 档案

摘要:1 创建线程 首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::fun 阅读全文
posted @ 2017-03-24 21:56 任智康 阅读(17894) 评论(0) 推荐(1) 编辑
摘要:程序如下: 答案:第一行:12 第二行:f(1,2) 说明: 1、关于符号#和## 两个符号都只能用于预处理宏扩展。不能在普通的源码中使用它们,只能在宏定义中使用。 简单的说,#是把宏参数变为一个字符串,##是把两个宏参数连接在一起。 2、关于宏展开 预处理过程的几个步骤: 1)字符集转换(如三联字 阅读全文
posted @ 2017-03-23 08:55 任智康 阅读(2290) 评论(0) 推荐(0) 编辑
摘要:weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手,而不是智能指针,因为它不具有普通指针的行为,没有重载operator*和operator->,它的最大作用在于协助shared_ptr,像旁观者那样观测资源的使用情况。 但它有一个很大的缺点,那 阅读全文
posted @ 2017-03-21 19:55 任智康 阅读(550) 评论(0) 推荐(0) 编辑
摘要:在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”和“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如1 阅读全文
posted @ 2017-03-18 15:14 任智康 阅读(1174) 评论(0) 推荐(2) 编辑
摘要:VC2012 下写 Windows 程序时,有时需要判断编译环境。在之前的文章《判断程序是否运行在 Windows x64 系统下。》里说过如何在运行期间判断系统环境,但在编译时如何判断? MSDN 里说,VC 有 3 个预处理常量,分别是 _WIN32,_WIN64,WIN32。这三个常量如何使用 阅读全文
posted @ 2017-03-17 09:05 任智康 阅读(2931) 评论(0) 推荐(0) 编辑
摘要:列出预定义的 ANSI C和C++ Microsoft实现宏。 编译器识别预定义的ANSI C宏,并且Microsoft C++实现提供几个更多。这些宏不带参数,并且不能重定义。下面列出的某些预定义的宏定义与多个值。请参见下表。有关更多信息。 ANSI兼容的预定义宏 宏 说明 __DATE__ 当前 阅读全文
posted @ 2017-03-17 09:04 任智康 阅读(2362) 评论(1) 推荐(1) 编辑
摘要:C++中没有返回类型的函数有3个,构造函数、析构函数、类型转换函数。 operator const char *() const 如果是重载*的话,那应该写成:const char operator * () const而上面所写的那样,而且即使是这样写那也不正确的, 因为运算符重载中有几个运算符的 阅读全文
posted @ 2017-03-15 17:03 任智康 阅读(2589) 评论(0) 推荐(0) 编辑
摘要:软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计 阅读全文
posted @ 2017-03-14 16:25 任智康 阅读(3369) 评论(1) 推荐(2) 编辑
摘要:每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如: A(void);//缺省的无参数构造函数 A(const A&a);//缺省的拷贝构造函数 ~A(); 阅读全文
posted @ 2017-03-09 10:18 任智康 阅读(1921) 评论(2) 推荐(0) 编辑
摘要:迭代器的分类 在STL中,原生指针也是一种迭代器,除了原生指针以外,迭代器被分为五类: Input Iterator 此迭代器不允许修改所指的对象,即是只读的。支持==、!=、++、*、->等操作。 Output Iterator 允许算法在这种迭代器所形成的区间上进行只写操作。支持++、*等操作。 阅读全文
posted @ 2017-03-07 17:02 任智康 阅读(1522) 评论(0) 推荐(0) 编辑
摘要:侯捷老师在《STL源码剖析》中说到:了解traits编程技术,就像获得“芝麻开门”的口诀一样,从此得以一窥STL源码的奥秘。如此一说,其重要性就不言而喻了。 之前已经介绍过迭代器,知道了不同的数据结构都有自己专属的迭代器,不同的迭代器也有不同的特性,由于算法的接口是统一的,通过迭代器的不同属性,算法 阅读全文
posted @ 2017-03-07 15:51 任智康 阅读(779) 评论(0) 推荐(0) 编辑
摘要:C++0x中加入了右值引用,和move函数。右值引用出现之前我们只能用const引用来关联临时对象(右值)(造孽的VS可以用非const引用关联临时对象,请忽略VS),所以我们不能修临时对象的内容,右值引用的出现就让我们可以取得临时对象的控制权,终于可以修改临时对象了!而且书上说配合move函数,可 阅读全文
posted @ 2017-03-07 11:21 任智康 阅读(756) 评论(0) 推荐(0) 编辑
摘要:线程函数为静态函数: 线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运行,静态函数的地址是不变的,并不在线程堆栈中static只是起了一个装饰的作用,所以二者并没有必然的关系 线程也是一种资源,是受系统调度的。因此,你必须要让系 阅读全文
posted @ 2017-03-07 09:57 任智康 阅读(20844) 评论(1) 推荐(5) 编辑

点击右上角即可分享
微信分享提示