本周仍然是基本的class设计,只是内含指针(资源)函数
对于这种class须要用构造/析构函数作RAII。而且要处理该class的spa
复制控制(拷贝构造和operator=)要么禁止复制,要么深拷贝,要么设计
引用计数等等。。。用Big Three来管理资源实现“自动”的内存管理是很指针
好的。code
其实,把这个概念通常化,能够把指针抽象成一个class,实现本身的blog
资源管理,成为智能指针。为何有了shared_ptr,等智能指针还要本身写内存
智能指针(或者叫句柄?)由于咱们有本身的需求啊,每一个程序都有本身资源
不同凡响的地方,好比写时复制啊,析构时用一些特殊的方式释放资源啊内存管理
等等。编译
吐槽一下做业的题目,能出得用心一些吗?为了让类有一个指针数据,
直接把Point类型的数据成员变成Point*的指针成员,能不能稍微含蓄一些?
好比你用Pimp手法写成:
class Rectangle { public: //your code private: struct Rectangle_Impl; Rectangle_Impl* pImpl; };
这样不是也含有指针成员了吗?并且还使class的界面和实现完全分离,大大下降了文件间的编译依赖性。