摘要:
1、noncopyable允许程序轻松地实现一个禁止拷贝的类,在头文件<boost/noncopyable.hpp>中 2、实现原理很简单:noncopyable的实现就是用了C++中的阻止拷贝, 参考《C++ Primer》第五版P449或者我的笔记类的设计(2)——拷贝控制(阻止拷贝) 1)方式 阅读全文
摘要:
1、类的行为分类:看起来像一个值;看起来想一个指针。 1)类的行为像一个值,意味着他应该有自己的状态。当我们拷贝一个像值的对象时,副本和原对象是完全独立的。改变副本不会对原有对象有任何影响,反之亦然。 2)行为像指针的类则共享状态。当我们拷贝一个这种类的对象时,副本和原对象使用相同的底层数据。改变副 阅读全文
摘要:
1、阻止拷贝的原因:对于某些类来说,拷贝构造函数和拷贝赋值运算符没有意义。举例:iostream类阻止了拷贝,以避免多个对象写入或者读取相同的IO缓冲。 2、阻止拷贝的方法有两个:新标准中可以将成员函数定义成删除的函数;在旧标准中可以使用private进行拷贝控制,只声明不定义。推荐使用第一种。 3 阅读全文
摘要:
1、析构函数:释放对象使用的资源,并销毁对象的非static数据成员;析构函数不接受参数,因此不能被重载。对于一个给定类,有且只有一个析构函数。 2、析构函数的组成:一个函数体+一个析构部分(implicit);所完成的工作:先执行函数体,然后按照初始化成员的逆序销毁成员。在这里需要注意的是销毁成员 阅读全文