git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9887 626c5289-ae23-0410-ae9c-e8d60b6d4f22
46 lines
1 KiB
Tcl
46 lines
1 KiB
Tcl
# Example using pointers to member functions
|
|
|
|
if [ catch { load ./member_pointer[info sharedlibextension] member_pointer} err_msg ] {
|
|
puts stderr "Could not load shared object:\n$err_msg"
|
|
}
|
|
|
|
proc check {what expected actual} {
|
|
if {$expected != $actual } {
|
|
error "Failed: $what , Expected: $expected , Actual: $actual"
|
|
}
|
|
}
|
|
# Get the pointers
|
|
|
|
set area_pt [ areapt ]
|
|
set perim_pt [ perimeterpt ]
|
|
|
|
# Create some objects
|
|
|
|
set s [Square -args 10]
|
|
|
|
# Do some calculations
|
|
|
|
check "Square area " 100.0 [do_op $s $area_pt]
|
|
check "Square perim" 40.0 [do_op $s $perim_pt]
|
|
|
|
set memberPtr $areavar
|
|
set memberPtr $perimetervar
|
|
|
|
# Try the variables
|
|
check "Square area " 100.0 [do_op $s $areavar]
|
|
check "Square perim" 40.0 [do_op $s $perimetervar]
|
|
|
|
# Modify one of the variables
|
|
set areavar $perim_pt
|
|
|
|
check "Square perimeter" 40.0 [do_op $s $areavar]
|
|
|
|
# Try the constants
|
|
|
|
set memberPtr $AREAPT
|
|
set memberPtr $PERIMPT
|
|
set memberPtr $NULLPT
|
|
|
|
check "Square area " 100.0 [do_op $s $AREAPT]
|
|
check "Square perim" 40.0 [do_op $s $PERIMPT]
|
|
|