我回答这个问题,并Potatoswatter 回答过的
现代C++等价物将是一个哨兵对象:在函数的开头构造它,其构造函数实现call(),并在返回(或异常退出)时,它的析构函数实现
我不熟悉在C++中使用sentry对象.我认为它们仅限于输入和输出流.
有人可以向我解释C++哨兵对象以及如何将它们用作类中一个或多个方法的周围拦截器吗?
即如何做到这一点?
Sentry对象确实非常相似.一方面,它们需要显式实例化(并且通过它),但另一方面,您可以添加它们,这样它们不仅可以检查类的不变量,还可以检查手头函数的一些前/后条件.