Tcl:比较一个类的实例

时间:2013-04-23 19:31:51

标签: oop tcl

我正在编写一种方法来比较同一个类的两个对象。第二个对象作为参数传入。该方法首先在当前对象上调用私有方法CalcValue,如果需要(只需要执行一次),则计算它的数值并将其放入其私有变量value

如何将作为参数发送的对象做同样的事情?如何访问该对象的私有CalcValue方法,然后访问它的私有value变量?我应该公开方法并为变量写一个公共访问方法吗?

1 个答案:

答案 0 :(得分:1)

我不知道你使用了哪个面向对象的框架,所以我假设[incr Tcl]。如果您希望第二个对象访问它,则需要公开CalcValue方法。下面是一个过于简化的示例,说明了如何访问您的方法:

package require Itcl

itcl::class Thing {
    method CalcValue {} { return 999 }
    method compare {otherThing} {
        set myValue [CalcValue]
        set otherValue [$otherThing CalcValue]
        # Do something
    }
}

# -------- MAIN: Create two instances and compare --------
Thing thing1
Thing thing2
thing1 compare thing2

如果CalcValue是私有的,则调用$otherThing CalcValue将失败。