代理类的核心:也是在类中间加一层,对成员函数返回结果可以进一步判断,修改后再处理。
在代理 proxy 类上只能做三件事:
- 创建它,也就是指定它扮演哪个字符。
- 将它作为赋值操作的目标,在这种情况下可以将赋值真正作用在它扮演的字符上。这样被使用时,proxy 类扮演的是左值。
- 用其它方式使用它。这时,代理类扮演的是右值。
Proxy 类可以完成一些其它方法很难甚至不可能实现的行为。多维数组是一个例子,左
/右值的区分是第二个,限制隐式类型转换是第三个。同时,proxy 类也有缺点。作为函数返回值,proxy 对象是临时对象(见 Item 19),需要析构构造的成本。
参考资料;More Effective C++ 条款30