| # file: runme.tcl | |
| # This file illustrates the high level C++ interface. | |
| # In this case C++ classes work kind of like Tk widgets | |
| catch { load ./example[info sharedlibextension] example} | |
| # ----- Object creation ----- | |
| puts "Creating some objects:" | |
| Circle c 10 | |
| puts " Created circle [c cget -this]" | |
| Square s 10 | |
| puts " Created square [s cget -this]" | |
| # ----- Access a static member ----- | |
| puts "\nA total of $Shape_nshapes shapes were created" | |
| # ----- Member data access ----- | |
| # Set the location of the object | |
| c configure -x 20 -y 30 | |
| s configure -x -10 -y 5 | |
| puts "\nHere is their current position:" | |
| puts " Circle = ([c cget -x], [c cget -y])" | |
| puts " Square = ([s cget -x], [s cget -y])" | |
| # ----- Call some methods ----- | |
| puts "\nHere are some properties of the shapes:" | |
| foreach o "c s" { | |
| puts " [$o cget -this]" | |
| puts " area = [$o area]" | |
| puts " perimeter = [$o perimeter]" | |
| } | |
| # ----- Delete everything ----- | |
| puts "\nGuess I'll clean up now" | |
| # Note: this invokes the virtual destructor | |
| rename c "" | |
| rename s "" | |
| puts "$Shape_nshapes shapes remain" | |
| puts "Goodbye" |