标签:
年前忙了几天,到现在才算是有空休息下来。先祝大家新年快乐,心想事成:)我也会发笑脸o.o
这篇博文主要介绍定义一个类型的对象时的复制控制方式,这部分内容之前有一定的了解但又浅尝辄止,始终感觉没能找到要点。年前又拿起书细细品读,算是有了一点新的了解。几天前就想动笔了,一直没时间,拖到现在。
每种类型定义了创建该类型的对象时会发生什么——构造函数定义了该类类型对象的初始化。类型还能控制复制、赋值或撤销该类型的对象时会发生什么——类通过特殊的成员函数:复制构造函数、赋值操作符和析构函数来控制这些行为。
复制构造函数是一种特殊构造函数,具有单个形参,该形参(常用 const 修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。当将该类型的对象传递给函数或函数返回该类型的对象时,将隐式使用复制构造函数。赋值操作符可以通过指定不同类型的右操作数而重载。右操作数为类类型的版本比较特殊:如果我们没有编写这种版本,编译器将为我们合成一个。析构函数是构造函数的互补:当对象超出作用域或动态分配的对象被删除时,将自动应用析构函数。析构函数可用于释放对象时构造或在对象的生命期中所获取的资源。不管类是否定义了自己的析构函数,编译器都自动执行类中非static 数据成员的析构函数。复制构造函数、赋值操作符和析构函数总称为复制控制。编译器自动实现这些操作,但类也可以定义自己的版本。
复制构造函数
赋值操作符
析构函数
管理指针成员
通过不同的复制控制策略,可以为指针成员实现不同的行为。其中一种便是智能指针。关于这部分内容,我打算在下一篇专门讲指针的博客中详加阐述(如果有细心的读者看过本系列博客前文,应该注意到我到现在都没有提及指针这一不可避免的特性)。本文内容未完,还有一个消息处理实例没有展示,有时间再更新,现在有点累哈哈。
最后再祝大家新年快乐!
标签:
原文地址:http://www.cnblogs.com/huashu/p/4296376.html