| # Operator overloading example | |
| require 'example' | |
| include Example | |
| a = Example::Complex.new(2, 3) | |
| b = Example::Complex.new(-5, 10) | |
| puts "a = #{a}" | |
| puts "b = #{b}" | |
| c = a + b | |
| puts "c = #{c}" | |
| puts "a*b = #{a*b}" | |
| puts "a-c = #{a-c}" | |
| # This should invoke Complex's copy constructor | |
| e = Example::Complex.new(a-c) | |
| e = a - c | |
| puts "e = #{e}" | |
| # Big expression | |
| f = ((a+b)*(c+b*e)) + (-a) | |
| puts "f = #{f}" | |