I\'m trying to create a class, which has a constructor that takes a single argument. When I create a new instance of the object, it returns a pointer.
class Adde
You aren't doing anything wrong. Assuming you see something like #
then in Ruby this is just the default representation of the object that you've created.
If you want to change this behaviour to be more friendly when you pass your object to puts
you can override the to_s (to string) method. e.g.
class Adder
def initialize(my_num)
@my_num = my_num
end
def to_s
"Adder with my_num = #{@my_num}"
end
end
then when you do puts y
you'll see Adder with my_num = 12
You can also override the inspect
method which is what is used, for example, when the Ruby irb console prints the representation of your object e.g.
class Adder
def inspect
to_s # return same representation as to_s
end
end
then in irb:
>> y = Adder.new 12
=> Adder with my_num = 12