/trunk/Examples/test-suite/tcl/member_pointer_runme.tcl

# · TCL · 46 lines · 24 code · 15 blank · 7 comment · 3 complexity · ee335386f2ebb9a88550ee09efa599c3 MD5 · raw file

  1. # Example using pointers to member functions
  2. if [ catch { load ./member_pointer[info sharedlibextension] member_pointer} err_msg ] {
  3. puts stderr "Could not load shared object:\n$err_msg"
  4. }
  5. proc check {what expected actual} {
  6. if {$expected != $actual } {
  7. error "Failed: $what , Expected: $expected , Actual: $actual"
  8. }
  9. }
  10. # Get the pointers
  11. set area_pt [ areapt ]
  12. set perim_pt [ perimeterpt ]
  13. # Create some objects
  14. set s [Square -args 10]
  15. # Do some calculations
  16. check "Square area " 100.0 [do_op $s $area_pt]
  17. check "Square perim" 40.0 [do_op $s $perim_pt]
  18. set memberPtr $areavar
  19. set memberPtr $perimetervar
  20. # Try the variables
  21. check "Square area " 100.0 [do_op $s $areavar]
  22. check "Square perim" 40.0 [do_op $s $perimetervar]
  23. # Modify one of the variables
  24. set areavar $perim_pt
  25. check "Square perimeter" 40.0 [do_op $s $areavar]
  26. # Try the constants
  27. set memberPtr $AREAPT
  28. set memberPtr $PERIMPT
  29. set memberPtr $NULLPT
  30. check "Square area " 100.0 [do_op $s $AREAPT]
  31. check "Square perim" 40.0 [do_op $s $PERIMPT]