Delphi:如何在虚方法上调用继承的继承祖先?

Delphi:如何在虚方法上调用继承的继承祖先?,第1张

概述我正在覆盖一个虚方法,我想调用继承。但我不想打电话给直接的祖先,我想先打电话给那个。 TObject TDatabaseObject TADODatabaseObject <---call this guy TCustomer <---skip this guy TVIP <---from this gu 我正在覆盖一个虚方法,我想调用继承。但我不想打电话给直接的祖先,我想先打电话给那个。
TObject   TDatabaSEObject      TADODatabaSEObject <---call this guy         TCustomer        <---skip this guy            TVIP           <---from this guy

我尝试将自己作为祖先投射,然后调用该方法,但它导致递归堆栈溢出:

procedure TVip.SetPropertIEs(doc: IXMLDOMdocument);begin   TADODatabaSEObject(Self).SetPropertIEs(doc); //skip over TCustomer ancestor   ...end;

我尝试添加继承的关键字,但不编译:

procedure TVip.SetPropertIEs(doc: IXMLDOMdocument);begin   inherited TADODatabaSEObject(Self).SetPropertIEs(doc); //skip over TCustomer ancestor   ...end;

可能?

解决方法 你不能用常规的语言方式,因为这会破坏语言的面向对象方面。

你可以摆弄指针和聪明的演员来做到这一点,但在开始回答之前:这真的是你想要的吗?

正如其他人所说:你的需要听起来像一个严肃的“设计气味”(类似于code smell,但更严重。

编辑:

走下指针摆弄道路可能会在短期内节省你的工作,并且从长远来看你需要花费数周时间。
这样可以很好地阅读:Upstream decisions,downstream costs。

总结

以上是内存溢出为你收集整理的Delphi:如何在虚方法上调用继承的继承祖先?全部内容,希望文章能够帮你解决Delphi:如何在虚方法上调用继承的继承祖先?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存