`+ ': Fracpri нельзя привести к Fixnum (TypeError) - PullRequest
0 голосов
/ 12 января 2020

Код:

class Fracpri

attr_accessor:whole, :numer, :denom, :dec, :flofrac
def initialize()
    puts "Hey! It's an empty constructor"
end
def getFraction(whole,numer,denom)
    @whole=whole
    @numer=numer
    @denom=denom
end
def showFraction
    puts "#{whole} #{numer}/#{denom}"
end
def +(obj)
    puts "Before adding the constant:  #{whole} #{numer}/#{denom}"
    obj.whole= self + obj.whole
    obj.numer= self + obj.numer
    obj.denom= self + obj.denom
    puts "After adding the constant x=#{obj}:  #{whole} #{numer}/#{denom}"
end
end

r3=Fracpri.new()
r3.getFraction(1,2,3)
r2=Fracpri.new()
r2.getFraction(4,6,5)
r1=Fracpri.new()
r1.getFraction(4,6,5)

r3=5+r1

Я получаю ошибку здесь для этой операции

Я не могу перегрузить этот оператор, он показывает ошибку "` + ": Fracpri не может быть приведено к Fixnum (TypeError) "

1 Ответ

0 голосов
/ 12 января 2020

5 является Integer. Integer#+ требует, чтобы аргумент был Integer, правильно реализовывал протокол coerce или отвечал на to_int. Ваш Fracpri ничего этого не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...