【发布时间】:2011-06-15 16:02:36
【问题描述】:
所以假设我想创建一系列类,每个类都有一个具有相同内容的成员函数。让我们调用函数
void doYourJob();
我想最终将所有这些类放入同一个容器中,这样我就可以遍历它们并让每个类都执行 'doYourJob()'
显而易见的解决方案是用函数制作一个抽象类
virtual void doYourJob();
但我犹豫不决。这是一个耗时的程序,而虚函数会大大减少它。此外,这个函数是类之间唯一的共同点,并且 doYourJob 对每个类的实现完全不同。
有没有办法避免使用带有虚函数的抽象类,还是我不得不接受它?
【问题讨论】:
-
使用多态类实现它。调度对虚拟函数的调用的开销很可能是微不足道的。在最坏的情况下,它很重要,而且您至少会有一个干净的设计,可以相对轻松地进行优化。
标签: c++ code-organization