该文被密码保护。 阅读全文
posted @ 2014-02-17 11:11 RunningPower 阅读(16) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2014-02-17 11:06 RunningPower 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 本文出自http://mxdxm.iteye.com/一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost:: intrusi 阅读全文
posted @ 2014-02-17 10:28 RunningPower 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 本文出自 http://www.cnblogs.com/cutepig/按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String { String ( const char* p );//用C风格的字符串p作为初始化值 //…}String s1 = “hello”;//OK 隐式转换,等价于String s1 = String(“hello”);但是有的时候可能会不需要这种隐式转换,如下:class String { String ( int n );//本意是预先分配n个字节给字符串 String (... 阅读全文
posted @ 2014-02-17 10:08 RunningPower 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 首先,拷贝构造函数不能由成员函数模版生成1. 拷贝构造函数一般用在以下三种场合:①.函数的参数是一个对象,并且是值传递方式②. 函数的返回值是一个对象,并且是值传递方式③. 用一个对象初始化另外一个对象。(如果有定义调用了构造函数就会调用拷贝,否则调用赋值运算符)当函数的参数或者返回值为一个对象时,使用的时候要小心,因为值传递的时候执行的是位拷贝,并不会调用对象的构造函数,也就是说生成的临时对象可能不是正确初始化的,这样就可能会出现一些意向不到的问题。当返回值是个对象和用一个对象初始化另外一个对象时的情况是相同的。2. 什么时候需要编写拷贝构造函数?当一个类的对象通过delete来释放,也即其 阅读全文
posted @ 2014-02-17 09:59 RunningPower 阅读(247) 评论(0) 推荐(0) 编辑