gpt4 book ai didi

c++ - 虚拟方法的错误重定向

转载 作者:行者123 更新时间:2023-11-28 07:17:22 26 4
gpt4 key购买 nike

我有 2 个类 A 和 B,其中 B 继承自 A。在 A 内部,我有这个方法 virtual int save(X *) const =0。在 B 里面,我想要这个方法 virtual int save(Y *) const

我还有类 X 和 Y,其中 Y 继承自 X。

但是编译器说我不能创建 B 的实例,因为它是抽象的。为什么这不起作用?编译器看不出 Y 继承自 X?

最佳答案

函数的类型签名需要匹配。重写这样的函数时,不能在参数中使用多态性。就编译器而言,现在B两个方法,virtual int save(X *) const =0virtual int save(Y *) const ( where the second is hiding the first )。由于函数签名不匹配,第二个实际上并没有覆盖它;它只是隐藏它。

关于c++ - 虚拟方法的错误重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com