diff options
Diffstat (limited to 'Examples/test-suite/octave/member_pointer_runme.m')
| -rw-r--r-- | Examples/test-suite/octave/member_pointer_runme.m | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Examples/test-suite/octave/member_pointer_runme.m b/Examples/test-suite/octave/member_pointer_runme.m new file mode 100644 index 0000000..c13350b --- /dev/null +++ b/Examples/test-suite/octave/member_pointer_runme.m @@ -0,0 +1,45 @@ +# Example using pointers to member functions + +member_pointer + +function check(what,expected,actual) + if (expected != actual) + error ("Failed: %s, Expected: %f, Actual: %f",what,expected,actual); + endif +end + +# Get the pointers + +area_pt = areapt; +perim_pt = perimeterpt; + +# Create some objects + +s = Square(10); + +# Do some calculations + +check ("Square area ", 100.0, do_op(s,area_pt)); +check ("Square perim", 40.0, do_op(s,perim_pt)); + +memberPtr = cvar.areavar; +memberPtr = cvar.perimetervar; + +# Try the variables +check ("Square area ", 100.0, do_op(s,cvar.areavar)); +check ("Square perim", 40.0, do_op(s,cvar.perimetervar)); + +# Modify one of the variables +cvar.areavar = perim_pt; + +check ("Square perimeter", 40.0, do_op(s,cvar.areavar)); + +# Try the constants + +memberPtr = AREAPT; +memberPtr = PERIMPT; +memberPtr = NULLPT; + +check ("Square area ", 100.0, do_op(s,AREAPT)); +check ("Square perim", 40.0, do_op(s,PERIMPT)); + |
