这是可能吗?
到目前为止,我尝试过的所有内容最终都被忽略了被覆盖的功能.我猜这是因为当编译库时,它解决了如何解析对Leap()的调用,此时我的派生类型不存在.或者,因为库引用了Cat类型的对象(实际上是lion类型),所以它调用Cat :: Leap(),而不是lion :: Leap().
我曾经认为函数是虚拟的这一事实意味着,即使它是从库中调用的,它也会通过在运行时查看对象的vtable来解析调用,这将是派生的类型.
谢谢.
解决方法 为了使其工作,库需要以某种方式编写:它应该通过引用或指针来获取它的Cats,而不是通过值(不幸的是,参数在C中传递的默认方式).如果您将lion传递给期望Cat值的函数,则lion会获得 sliced到Cat,并且就函数而言实际上变为Cat. 总结以上是内存溢出为你收集整理的c – 使库函数使用从库类派生的类全部内容,希望文章能够帮你解决c – 使库函数使用从库类派生的类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)