这可能是一个愚蠢的问题,但在搜索了几个小时后我找不到答案。
使用AspectC ++,我们可以定义切入点,它们表示一旦匹配就被拦截的东西。例如,我可以做
pointcut pc() = call("% Base::%(...)");
以便使用切入点advice
的任何pc
都会拦截对类Base
的某些方法的任何调用。即使稍后创建了Sub
的子类Base
,这也会起作用:pc
也会拦截对Sub
方法的调用。现在,我想要的是拦截Sub
的仅的方法,即Sub
中不存在的Base
方法。我们如何使pc()
拦截最终创建的Base
的任何子类的任何方法,而不是Base
本身的方法?