Posted to tcl by apw at Mon Sep 10 13:21:00 GMT 2007view raw
- package require Itcl 4.0
- ::itcl::class Person {
- private variable nbPersons 0
- protected variable name
- protected variable tool
- constructor {{myname "Steve McQueen"}} {
- set name $myname
- incr nbPersons
- puts "Person named : '$name' created"
- }
- destructor {
- incr nbPersons -1
- puts "Person named : '$name' deleted"
- }
- }
- ::itcl::class Tool {
- method tell {message} {
- return "Tool is telling you : '$message'"
- }
- method sing {who what} {
- return "$who sings : '$what'"
- }
- }
- set t [Person #auto "Steve McQueen"]
- ::itcl::mixin add ::Person ::Tool
- ::itcl::forward add $t singing $t sing "Queen"
- puts [$t tell "This is the truth : I am a liar"]
- puts [$t singing "We will rock you!"]
- :::itcl::delete object $t
- Result in both versions:
- Person named : 'Steve McQueen' created
- Tool is telling you : 'This is the truth : I am a liar'
- Queen sings : 'We will rock you!'
- Person named : 'Steve McQueen' deleted