1

在代理部分,四人组的设计模式说:

重载成员访问运算符并不是每种代理的好解决方案。一些代理需要准确地知道调用了哪个操作,而重载成员访问运算符在这些情况下不起作用。

[...]

在这种情况下,我们必须手动实现将请求转发给主体的每个代理操作。

[...]

通常,在将请求转发给主体之前,所有操作都会验证请求是否合法、原始对象是否存在等。一遍又一遍地编写这段代码很乏味。所以通常使用预处理器来自动生成它。

好的,哪个预处理器以及如何在 C++ 中使用?

4

2 回答 2

0

我认为它们意味着围绕主题类自动生成包装器代码。一个示例是SWIG项目生成的包装器代码。

于 2011-05-05T21:16:46.933 回答
0

在 C++ 中实现一些设计模式的规范参考是

Alexandrescu 的现代 C++ 设计

关于使用 C++ 类型系统构建设计模式的技术的另一个很好的参考书是关于

Vandevoorde & Josuttis 的 C++ 模板

模板元编程参考是

C++ 模板元编程:来自 Boost 和 Beyond 的概念、工具和技术,David Abrahams 和 Alesky Gurtovoy。

于 2011-05-05T20:25:51.270 回答