首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >稳健性多重继承

稳健性多重继承
EN

Ethereum用户
提问于 2022-07-30 23:06:19
回答 1查看 54关注 0票数 0

我有一个合同Cis Ownable,所以我可以在它的管理功能上使用ownerOnly。最近,我添加了一些我将在其他项目中开始使用的功能。我将该功能重构为第二个契约Refactored,所以现在是contract C is Refactored, Ownable

但是后来我发现Refactored的一些功能也需要保护,所以我添加了contract Refactored is Ownable,所有的东西都出现了Linearization of inheritance graph impossible错误。

最后,我将Ownable放在Refactored上,并将其从C中删除--这解决了这个问题--但现在看起来C使用的是不包括OwnableownerOnly功能--也就是说,它可以工作,但看起来不太好。

我是否可以让这两个合同都是Ownable,但其中一个仍然继承另一个合同?(我希望避免在C中有一个类型为Refactored的变量,因为我将不得不公开一堆getter函数,从而否定整个重构)。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-07-31 00:09:50

最后,我在Refactored上留下了Ownable,并将它从C中移除--这解决了这个问题--但是现在看来C正在使用ownerOnly功能,而没有包含Ownable。

我不知道你为什么这么想。几乎所有面向对象的语言都是这样工作的。如果B是A的孩子,C是B的孩子,A是C的父母。

为了回答你的问题,没有办法做你想做的事。你得和现在的情况有关。

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

https://ethereum.stackexchange.com/questions/132724

复制
相关文章

相似问题

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