我正在试图清除我继承的应用程序中的编译器警告。我们的一个类继承自TControl。我收到的警告是"Redeclaration of Changed隐藏了基类中的一个成员“
“更改”是TControl中的一个受保护的过程。我所查看的类已经用布尔属性重写了它。
property Changed : Boolean read FChanged write FChanged stored true;
我已经排除了几个选择:
所以我的问题是:
( 1)这个警告真的是一个问题吗?“隐藏基本成员”意味着什么?
2)如何在不重命名属性或隐藏警告的情况下删除编译器警告?
我正在使用Delphi 2010
编辑:有一些建议使用重构工具来重命名违规的属性。我已经排除了这一点,因为重构工具在这个代码基上根本不起作用
发布于 2010-11-18 01:04:01
如果您自己的“更改”也是一个过程,则可以使用重写指令告诉编译器,您在TControl中向基本更改方法添加了功能。如果您的声明不同,或者您希望有其他原因破坏继承链,您可以指定重新引入指令,告诉编译器您清楚地破坏了该链。
不幸的是,这是不可能的属性,所以没有真正的解决您的问题,除了
继承来隐藏警告
我会选择第一种选择。由于您使用的是Delphi 2010,所以您可以使用Delphi中的重构工具来重命名您的应用程序,尽管我会彻底检查修改后的修改,因为它们可能也会影响基类中更改的方法.
https://stackoverflow.com/questions/4210647
复制相似问题