2010-08-07 5 views
1

J'ai une classe comme ceci:Ruby Redéfinition Opérateur

class MyObject 
    cattr_accessor :value_  # Note the `cattr_accessor` as opposed to `attr_accessor`. 

    def +(right_) 
    self.value_ + right_.value_ 
    end 
end 

Je veux être en mesure de faire quelque chose comme ceci:

x = MyObject.new 
y = MyObject.new 

x.value_ = 1 
y.value_ = 2 

puts x + y 

Il ne fonctionne pas bien.

+0

Voulez-vous que 'value_' soit une variable de classe ou d'instance? '+ 'fonctionne comme s'il s'agissait d'une variable d'instance. –

+0

variable de classe. Je vois où le problème pourrait être maintenant. Mais j'aimerais voir ta solution. – Dex

+0

Si vous souhaitez que chaque instance ait une valeur distincte, vous devez utiliser 'attr_accessor'. – jtbandes

Répondre

0

Ma méthode fonctionne avec attr_accessor.

Questions connexes