考虑一个场景,其中有两个类,即Base和Derived。如果基类要调用派生类的函数,则可以通过创建虚拟函数并在派生类中定义该VF或使用回调来实现。我想知道两者中应该选择哪一个?两者之间的选择取决于哪些情况/条件?虚拟功能与回调
编辑: 问题澄清:
我指的是所述的情况是,有其接收消息的基类。这些不同的消息将由派生类以不同方式处理,所以一种方法是创建一个虚拟函数并让派生类实现它,通过各种开关情况处理每条消息。
另一种方法是通过模板内部的函数指针(指向派生类的函数)实现回调(需要模板来处理派生类和函数名称的对象)。模板和函数指针将驻留在基类中。
我想你需要提供一个具体的例子来澄清你的问题,如果你仍然在寻找答案。我不明白你为什么需要'各种开关盒',例如选项一。通过程序设计通常有这样的方法。在第二种选择中,您不清楚模板的含义。你是在谈论C++'templates'还是某种包含信息来识别函数指针的消息模板?更具体的东西,即使它是伪代码也是有帮助的。 – forsvarir 2011-05-24 11:42:39
@forsvarir感谢您的回复,我会在几天后跟进。 – 2011-05-24 11:51:15
@forsvarir请原谅我不跟进这个话题。我***会在几天内回到这个问题,还有其他一些问题。我完全记得它们,但是现在我的碟子上有太多菜。将很快跟进。 – 2012-04-05 07:15:17