句柄(一)
提出问题:代理(见其它文章)提供了一个容器容纳对象时保持多态性的办法,但是它采用复制得到副本的方式,在复制对象开销巨大时或不可能时,需要考虑其它的方法。
解决方案:handle类(句柄类,又叫“ 智能指针 ”)
特性:
1. 具备代理的多态性
2. 只指向、不复制对象
3. 无句柄指向对象时释放对象的空间
使用方法:
1. 示例图
注释:Point 是被指向的类,u是指向的次数(对句柄的计数,为 0 时释放掉对象,在析构函数中完成操作),handle 是句柄,被允许访问该类的成员函数,该类调用 Point 的函数以实现功能
2. 过程图