TclOO:使用另一个类的方法

问题描述 投票:0回答:1

我的目标是重用类中的方法

A
,但我不想使用该类的所有方法,只想使用一个
我尝试在我的新类
mixin
中使用这两个函数
superclass
或/和
B
,但是类
A
中的所有方法(变量以及可能是我不知道的其他元素...)也可以在课堂上访问
B

我的问题:可以只使用你想要的方法而不复制它们吗?

tcl
1个回答
0
投票

方法不存在,除非绑定到类(或实例对象,如果它是使用

oo::objdefine
创建的); basic C API 并没有为您提供创建未绑定方法的方法(嗯,它可以提供,但仅支持创建构造函数和析构函数;未绑定方法处于部分定义状态)。这种绑定是为什么方法实际上不是过程的部分原因(尽管它们共享很多东西)。

要共享一个方法,请将其放入自己的类中(具有所需的最少支持声明)并将其混合到想要共享它的类中。或者定义一个

forward
,如果这对您的情况更有意义。或者只是复制定义(
info class definition
的结果旨在以这种方式轻松使用)。

© www.soinside.com 2019 - 2024. All rights reserved.