diff options
Diffstat (limited to 'Examples/ruby/mpointer/runme.rb')
-rw-r--r-- | Examples/ruby/mpointer/runme.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Examples/ruby/mpointer/runme.rb b/Examples/ruby/mpointer/runme.rb new file mode 100644 index 000000000..e11aa68cb --- /dev/null +++ b/Examples/ruby/mpointer/runme.rb @@ -0,0 +1,48 @@ +# Example using pointers to member functions + +require 'example' + +# Get the pointers + +area_pt = Example::areapt +perim_pt = Example::perimeterpt + +puts "area_pt = #{area_pt}" +puts "perim_pt = #{perim_pt}" + +# Create some objects + +c = Example::Circle.new(4) +s = Example::Square.new(10) + +# Do some calculations + +puts "Circle area = #{Example::do_op(c, area_pt)}" +puts "Circle perim = #{Example::do_op(c, perim_pt)}" +puts "Square area = #{Example::do_op(s, area_pt)}" +puts "Square perim = #{Example::do_op(s, perim_pt)}" + +puts "areavar = #{Example::areavar}" +puts "perimetervar = #{Example::perimetervar}" + +# Try the variables +puts "Circle area = #{Example::do_op(c, Example::areavar)}" +puts "Circle perim = #{Example::do_op(c, Example::perimetervar)}" +puts "Square area = #{Example::do_op(s, Example::areavar)}" +puts "Square perim = #{Example::do_op(s, Example::perimetervar)}" + +# Modify one of the variables +Example::areavar = perim_pt + +puts "Circle perimeter = #{Example::do_op(c, Example::areavar)}" + +# Try the constants + +puts "Example::AREAPT = #{Example::AREAPT}" +puts "Example::PERIMPT= #{Example::PERIMPT}" +puts "Example::NULLPT = #{Example::NULLPT}" + +puts "Circle area = #{Example::do_op(c, Example::AREAPT)}" +puts "Circle perim = #{Example::do_op(c, Example::PERIMPT)}" +puts "Square area = #{Example::do_op(s, Example::AREAPT)}" +puts "Square perim = #{Example::do_op(s, Example::PERIMPT)}" |