首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redeclaration在基类中隐藏成员。

Redeclaration在基类中隐藏成员。
EN

Stack Overflow用户
提问于 2010-11-18 00:44:54
回答 1查看 989关注 0票数 1

我正在试图清除我继承的应用程序中的编译器警告。我们的一个类继承自TControl。我收到的警告是"Redeclaration of Changed隐藏了基类中的一个成员“

“更改”是TControl中的一个受保护的过程。我所查看的类已经用布尔属性重写了它。

property Changed : Boolean read FChanged write FChanged stored true;

我已经排除了几个选择:

  1. 将名称从“更改”重命名为其他内容。这不是一个实用的选项,因为这个属性在application.
  2. Hide中到处使用--使用编译器指令的警告。我可以这样做,但我更愿意知道警告意味着什么以及如何纠正它。

所以我的问题是:

( 1)这个警告真的是一个问题吗?“隐藏基本成员”意味着什么?

2)如何在不重命名属性或隐藏警告的情况下删除编译器警告?

我正在使用Delphi 2010

编辑:有一些建议使用重构工具来重命名违规的属性。我已经排除了这一点,因为重构工具在这个代码基上根本不起作用

EN

回答 1

Stack Overflow用户

发布于 2010-11-18 01:04:01

如果您自己的“更改”也是一个过程,则可以使用重写指令告诉编译器,您在TControl中向基本更改方法添加了功能。如果您的声明不同,或者您希望有其他原因破坏继承链,您可以指定重新引入指令,告诉编译器您清楚地破坏了该链。

不幸的是,这是不可能的属性,所以没有真正的解决您的问题,除了

  1. 重命名为“更改”为其他东西
  2. 使用从TControl

继承来隐藏警告

我会选择第一种选择。由于您使用的是Delphi 2010,所以您可以使用Delphi中的重构工具来重命名您的应用程序,尽管我会彻底检查修改后的修改,因为它们可能也会影响基类中更改的方法.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4210647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档