将不变检查添加到类的每个方法

时间:2010-08-06 03:19:55

标签: c++ gcc

我有一个有很多方法的类,想检查前/后条件,例如是mMember == null,如果不是,则调用函数x()。

是否可以自动为该班级的每个成员添加前/后条件?该类在class.h中定义,所有方法都在class.cpp中定义。能够在class.cpp的开头定义一个宏是理想的,只能插入该文件中的每个函数条目。

我知道我可以手动在每个函数入口上手动添加相同的前提条件/后置条件(使用析构函数),但我一次又一次地遇到这个问题。这并不理想,因为我无法检查这些变化,必须在本地维护它们,并且它们与其他人的变化有点根源。

1 个答案:

答案 0 :(得分:2)

我从来没有能够用C ++做到这一点;我总是使用一组手动添加到每个成员函数的宏。

这听起来像是一个可能非常适合面向方面编程的工作,我发现在C ++中有一些用于AOP的库,比如AspectC ++。至少可以看看其中一个,看看它是否可以用来解决你的问题。