小波です.
次のようなことを実現したいのですが,可能でしょうか?
class Cat
def initialize(name,age,sex)
@name = name; @age = age; @sex = sex
end
def hoge
end
...
...
end
mike = Cat.new("みけ",4.5,"F")
tama = Cat.new("たま",3.8,"M")
というふうにCatクラスを定義して,そのオブジェクト(インスタンス)
である mike, tama を生成したとします.
そのあと,たとえば次のような形でこれらのオブジェクト間の演算
を定義することはできるでしょうか.
babycat = mike + tama
ここで Cat クラスに属する2個のオブジェクト同士の + の演算は,
mike と tama の性質から導かれるもので,たとえば上記のように
して両親の性質をまぜた子猫を作るものとします.
また別にたとえば
puts Cat.fight(mike,tama)
みたいな形で,mike, tama のもつ性質を利用して勝ち負けを決めて
"みけの勝ち!" といった出力を得るようにすることはできる
でしょうか.
mike.fight(tama) という形のメソッドなら簡単なのですが...