作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑一个场景,其中有两个类,即 Base 和 Derived。如果基类想要调用派生类的函数,它可以通过创建一个虚函数并在派生类中定义该 VF 或使用回调来实现.我想知道两者中应该优先选择什么?两者之间的选择取决于哪些情况/条件?
编辑:问题澄清:
我指的情况是有一个接收消息的基类。这些不同的消息将由派生类以不同方式处理,因此一种方法是创建一个虚函数并让派生类实现它,通过各种 switch case 处理每条消息。
另一种方法是通过模板内部的函数指针(指向派生类的函数)实现回调(处理派生类的对象和函数名需要模板)。模板和函数指针将驻留在基类中。
最佳答案
虚函数调用实际上是一个回调。
调用者在对象的虚函数表中查找相应的条目并调用它。这与回调的行为完全一样,只是成员函数指针的语法很笨拙。虚函数将工作卸载给编译器,这使它们成为一个非常优雅的解决方案。
虚函数是在继承层次结构中进行通信的方式。
关于c++ - 虚函数与回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5564697/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!