As the itcl::class is a tcl command, you can insert code into the class declaration. It is common C++ practice to have set/get methods to protect the variables in an object from manipulation outside the class. This sample class creates a set of methods to set and enquire a list of protected variables. console show package require Itcl itcl::class tclas { foreach v "time distance" { method get$v {} [subst -nocommands { return [subst $$v] }] method set$v nuval [subst -nocommands { set $v \$nuval } ] protected variable $v "Var $v" } constructor {} { puts "Constructs $this" } method speed {} { return [expr {[getdistance]/[gettime]}]} } tclas a a setdistance 2 a settime 3.0 puts "Travelled [a getdistance] taking Time [a gettime] so speed is [a speed]" The variable list can be arbitrarily long of course when this would save considerable typing and validation effort.