::oo::class Core 8.6
::oo::copy Core 8.6
::oo::define Core 8.6
::oo::objdefine Core 8.6
::oo::object Core 8.6
::oo::util Tcllib 1.18
::oo::dialect Tcllib 1.18
::oo::meta Tcllib 1.18
::oo::option Tcllib 1.18
::info Core
::info class Core 8.6
::info object Core 8.6
::my Core 8.6
::next Core 8.6
::self Core 8.6
** Classes **
`''CONFIGURING CLASSES''`
`'''oo::define''' ''class defScript''`<
>`'''oo::define''' ''class subcommand arg ?arg ...?''`
`'''constructor''' argList bodyScript`<
>`'''deletemethod''' name ?name ...`<
>`'''destructor''' bodyScript`<
>`'''export''' name ?name ...?`<
>`'''filter''' ?-slotOperation? ?methodName ...?`<
>`'''forward''' name cmdName ?arg ...?`<
>`'''method''' name argList bodyScript`<
>`'''mixin''' ?-slotOperation? ?className ...?`<
>`'''renamemethod''' fromName toName`<
>`'''self''' subcommand arg ...`<
>`'''self''' script`<
>`'''superclass''' ?-slotOperation? ?className ...?`<
>`'''unexport''' name ?name ...?`<
>`'''variable''' ?-slotOperation? ?name ...?`
======
namespace import oo::*
proc noop args {}
# ***Instantiation***
class create A1class
A1class create a1object
class create B1class
set b1object [B1class new]
#-----
# ***Construction***
class create A2class {
constructor args {
puts hi
catch {next $args} {}
}
}
class create B2class
define B2class constructor args {
puts hi
catch {next $args} {}
}
A2class create a2object
B2class create b2object
#-----
# ***Variables and methods***
class create A3class {
constructor args {
variable a
catch {next $args} {}
}
method a1method arg {
variable a
set a $arg
}
method a2method {} {
variable a
return $a
}
}
class create B3class {
variable b
method b1method arg {
set b $arg
}
method b2method {} {
return $b
}
}
class create C3class
define C3class variable c
define C3class method c1method arg { set c $arg }
define C3class method c2method {} { return $c }
A3class create a3object
a3object a1method 5
puts [a3object a2method]
set b3object [B3class new]
$b3object b1method 5
puts [$b3object b2method]
#-----
# ***Inheritance***
class create A4class {
variable a
constructor arg {
set a $arg
catch {next $arg} {}
}
method a1method {} {
return $a
}
}
class create B4class {
variable b
constructor arg {
set b $arg
catch {next $arg} {}
}
method b1method {} {
return $b
}
}
noop Single Inheritance
class create C4class {
superclass A4class
constructor arg {
catch {next $arg} {}
}
method c1method {} {
my variable a
return $a
}
}
noop Multiple Inheritance
class create D4class {
superclass B4class C4class
constructor arg {
catch {next $arg} {}
}
}
C4class create c4object hi
puts [c4object c1method]
puts [c4object a1method]
set d4object [D4class new 42]
puts [$d4object c1method]
puts [$d4object b1method]
#-----
======