是什么原因导致“W1010 方法 '%s' 隐藏基本类型 '%s' 的虚拟方法”警告?

2024-01-05

我有一个带有虚函数的基类:

TMyBaseClass = class(TObject)
public
  ValueOne : integer;
  procedure MyFunction(AValueOne : integer); virtual;
end;

procedure TMyBaseClass.MyFunction(AValueOne : integer);
begin
  ValueOne := ValueOne;
end;

后代类实现具有相同名称的函数。 该函数添加一个新参数并调用其锚定函数。

TMyDerivedClass = class(TMyBaseClass)
public
  ValueTwo : integer;
  procedure MyFunction(AValueOne : integer; AValueTwo : integer);
end;

procedure TMyDerivedClass.MyFunction(AValueOne : integer; AValueTwo : integer);
begin
  inherited MyFunction(AValueOne);
  ValueTwo := ValueTwo;
end;

编译时,显示以下警告消息:W1010 Method

“MyFunction”隐藏基类型“TMyBaseClass”的虚拟方法

我找到了阅读问题的解决方案另一个问题 https://stackoverflow.com/questions/9103263/delphi-method-create-hides-virtual-method-of-base-but-its-right-there,但我想知道是什么导致了这个警告。 即使两个函数具有不同的参数,TMyDerivedClass.MyFunction 是否也会隐藏 TMyBaseClass.MyFunction?如果是这样,为什么?


The 文档 http://docwiki.embarcadero.com/RADStudio/en/W1010_Method_'%25s'_hides_virtual_method_of_base_type_'%25s'_(Delphi)很清楚地解释了这个问题:

您已声明一个与基类中的虚拟方法同名的方法。你的新方法不是虚拟方法;它将隐藏对基类同名方法的访问。

是什么意思hiding是从派生类中您不再有权访问基类中声明的虚拟方法。您不能引用它,因为它与派生类中声明的方法具有相同的名称。后一个方法是从派生类中可见的方法。

如果两种方法都标有overload指令,那么编译器可以使用它们的参数列表来区分它们。如果没有这个,编译器所能做的就是隐藏基本方法。

请阅读链接文档的其余部分,以获取有关潜在解决方案的建议。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么原因导致“W1010 方法 '%s' 隐藏基本类型 '%s' 的虚拟方法”警告? 的相关文章

随机推荐

  • 如何获取magento2中的当前类别?

    我怎样才能获得当前类别magento2 我想在自定义 phtml 文件中获取类别名称和类别 id 上面的内容似乎是正确的 但我认为直接跳到注册表并不是最好的方法 Magento 提供了一个已经封装了该功能的图层解析器 请参阅目录插件中的 T
  • @AspectJ。 scala(也可能是 java)lambda 的切入点

    是否可以为 scala lambda 提供 poitcut 如果我没有记错的话 scala lambdas 现在的编译方式与 java lambdas 相同 所以我认为我的问题也适用于 java lambdas 但我不确定 这是代码 基本上
  • 画笔范围未按预期工作

    由于某种原因 我的图表没有像我希望的那样被刷掉 Brush extent 的域似乎正常工作 但条形图都飞出了页面 有人可以告诉我这里出了什么问题吗 function doBrush x domain brush empty x2 domai
  • 如何改变UINavigationBar的颜色?

    我想改变颜色UINavigationBar 将从图像中获取颜色 尝试将对象设置为导航栏的子视图 设置色调颜色属性或使用图像 UINavigationController controller UINavigationController a
  • 从根部高效计算多项式系数

    我有一个单调多项式的根 即 p x x x 1 x x n 我需要系数 a n a 0 p x x n a n 1 x n 1 a 0 有谁知道一个计算效率高这样做的方法 如果有人知道 C C 实现 这实际上是最好的 我已经看过 GSL 但
  • 如何为html中的多个图像创建搜索功能

    我是构建 html 网站的新手 我的文件夹中有很多 gif 动画 我想在javascript中创建一个搜索功能 以便它可以搜索图像的关键字 如果图像存在 则可以显示图像 如果不存在 则显示请输入另一个关键字
  • 在 tsibble 中设置索引

    您是否曾经回顾过自己的旧问题并感到有点尴尬 我刚刚做到了 现在我也做到了 在某些时候我可能会对这个有同样的感觉 我正在尝试将我的预测工作转移到fable 在此过程中我尝试使用tsibble 以前与一个ts对象我只是设置了开始年份和频率 现在
  • 我可以使用自动布局为横向和纵向方向提供不同的约束吗?

    当设备旋转时是否可以改变约束 如何实现这一目标 一个简单的例子可能是两张图像 在纵向时 一张放在另一张上面 但在横向时 它们并排 如果这是不可能的 我还能如何完成这个布局 我正在代码中构建我的视图和约束 而不是使用界面生成器 Edit 运用
  • 您可以在 ASP.NET-MVC 中的每个操作上应用 ActionFilter

    我想申请一个动作过滤器 http weblogs asp net rashid archive 2008 03 28 asp net mvc action filter caching and compression aspx在 ASP N
  • Nodejs - .node_libraries/ 用于 www-data

    我想在我的 PHP 应用程序中使用 uglifyjs https github com mishoo UglifyJS UglifyJS 是使用 Nodejs 构建的 因此我的 homedir home peppe 中需要一个 node l
  • 成为一名合格的 Scala 程序员是否需要成为一名合格的 Java 程序员? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • URL 的 Path.Combine 吗?

    路径组合 https msdn microsoft com en us library system io path combine 28v vs 110 29 aspx很方便 但是 NET 框架中有类似的功能吗URLs http en w
  • 从存储过程 catch 块处理死锁重试是个好主意吗

    据我了解 不可能完全防止事务死锁 从应用程序代码的角度来看 我希望事务永远不会失败 我已经看到这种模式用于 Microsoft SQL 我想知道这是否是一个好主意 DECLARE retry tinyint SET retry 5 WHIL
  • 将天数添加到特定日期

    许多例子都是关于在这一天添加天数 但是 如果我有不同的起始日 该怎么办 例如 不起作用 day 2010 01 23 add 7 days to the date above NewDate Date day strtotime 7 day
  • 将 R 数据作为 csv 直接写入 s3

    我希望能够将数据直接从 AWS s3 中写入存储桶data frame data table对象作为 csv 文件 而无需先使用 AWS CLI 将其写入磁盘 obj to write s3 lt data frame cbind x1 r
  • 如何在 Python 3 中将 PyCairo 表面转换为 OpenCV numpy 并返回

    我想将 OpenCV 图像转换为 PyCairo 进行一些操作 绘图等 并将其转换回 OpenCV 你知道该怎么做吗 简单的例子就足够了 谢谢 正如 PyCairo 中所指定的测试代码 https github com dalemberti
  • php mysql_insert_id 多行?

    是否可以从插入多行的查询中获取自动递增的 id 例如 INSERT INTO 表 col1 col2 VALUES 1 2 3 4 5 6 或者 有没有办法在不向表中插入任何内容的情况下找到下一个自动增量值 Thanks 据我所知 auto
  • macOS - 从原始 Github 获取 JSON 数据 + 解析

    我正在尝试从 a 获取 jsongithubusercontent URL https raw githubusercontent com nacrt SkyblockClient REPO main files mods json htt
  • Angular 5 Material 2 - 自动完成从外部API获取数据

    我使用的是角度 5 和材质 2 在 ts 文件中 我有这个属性 filteredOptions Observable
  • 是什么原因导致“W1010 方法 '%s' 隐藏基本类型 '%s' 的虚拟方法”警告?

    我有一个带有虚函数的基类 TMyBaseClass class TObject public ValueOne integer procedure MyFunction AValueOne integer virtual end proce