Есть ли способ остановить переопределение функции в Tcl / itcl? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть следующий вариант использования ...

itcl::class A {

    public method Foo {} {}
}

itcl::class B {
    inherit A

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

}

Есть ли способ остановить переопределение функции в Tcl / itcl?

1 Ответ

0 голосов
/ 03 декабря 2018

Я не верю, что itcl может сделать это вообще.TclOO в 8.7 будет своего рода в состоянии сделать это (сделав метод в суперклассе закрытым), но вы также не сможете вызывать его из других классов;если подкласс может видеть это, он может также переопределить это.Общий принцип состоит в том, что, если пользовательский код хочет вызвать проблемы, он может;это вызовет проблемы в процессе, но вот как работает язык: в конце концов, вы также можете переопределить встроенные команды, такие как set и if и proc, и это может вызвать гораздо больше неприятностей.

Помните, что в Tcl видимость методов не является механизмом безопасности.Все механизмы безопасности всегда связаны с переводчиками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...