# Example using pointers to member functions from member_pointer import * def check(what, expected, actual): if expected != actual: raise RuntimeError( "Failed: ", what, " Expected: ", expected, " Actual: ", actual) # 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)) # Typedefs check("Square perim", 40.0, do_op_td(s, perim_pt)); check("Add by value", 3, call1(ADD_BY_VALUE, 1, 2)) check("Add by pointer", 7, call2(ADD_BY_POINTER, 3, 4)) check("Add by reference", 11, call3(ADD_BY_REFERENCE, 5, 6))