首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法停止Tcl/ itcl中的函数重写?

有没有办法停止Tcl/ itcl中的函数重写?
EN

Stack Overflow用户
提问于 2018-12-03 19:38:43
回答 1查看 107关注 0票数 0

我有以下用例...

代码语言:javascript
复制
itcl::class A {

    public method Foo {} {}
}

itcl::class B {
    inherit A

    public method Foo {} {} // Should not be allowed

}

有没有办法停止Tcl/ itcl中的函数重写?

EN

回答 1

Stack Overflow用户

发布于 2018-12-03 20:06:24

我完全不相信itcl能做到这一点。8.7中的TclOO可以做到这一点(通过将超类上的方法设为私有),但您也不能从其他类调用它;如果一个子类可以看到它,它也可以覆盖它。一般原则是,如果用户代码希望制造麻烦,它就会造成麻烦;它会在这个过程中给自己带来麻烦,但这就是语言的工作方式:毕竟,您还可以覆盖setifproc等内置命令,而这可能会造成更多的麻烦。

请记住,在Tcl中,方法的可见性不是一种安全机制。安全机制总是与解释器绑定在一起。

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

https://stackoverflow.com/questions/53593074

复制
相关文章

相似问题

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