| # 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)); |
| |