Posted to tcl by aspect at Mon Nov 09 03:13:10 GMT 2015view pretty
oo::class create Light { method blink {} { puts "[self class] [self] blinking!" } } oo::class create Fitting { variable nLights constructor {} { Light create Spot oo::objdefine [self] forward spot Spot } method addLight {} { Light create lamp[incr nLights] oo::objdefine [self] forward light$nLights lamp$nLights } method light {n args} { lamp$n {*}$args } method lights {args} { for {set n 1} {$n <= $nLights} {incr n} { my light$n {*}$args } } } Fitting create strip strip addLight strip addLight strip light 1 blink strip light2 blink strip lights blink