有一个抽象类 A,它有一个纯虚成员函数 func()。存在大量派生类,每个派生类都有不同的 func() 实现。
现在想象一下,您想在每次调用 func() 时添加一个要执行的额外任务,假设一个cout << "hello world";
独立于派生类的任务。该任务也独立于 func() 的内容,因此它可以在 func() 之前、之后甚至中间执行,只有在每次调用 func() 时才会执行它这一事实很重要。
c++(11) 是否允许以聪明的方式做到这一点?
我想到的最好的事情是在实现任务的父类中编写一个 pre-func() 方法,并在派生的所有 func() 实现的开头复制对 pre-func() 的调用类。有更好的吗?