我的工作,从Matrix
继承网格类:自定义类的实例化对象的超
我不能似乎能够覆盖::initialize
因为它是私有的。上述工作,但产生Matrix
类而不是我的自定义类的实例,所以我卡住了。当调用to_s
和接收"Matrix[[X,O],[O,O]]"
的东西时,我的课没有实例化。我错过了什么?
我的工作,从Matrix
继承网格类:自定义类的实例化对象的超
我不能似乎能够覆盖::initialize
因为它是私有的。上述工作,但产生Matrix
类而不是我的自定义类的实例,所以我卡住了。当调用to_s
和接收"Matrix[[X,O],[O,O]]"
的东西时,我的课没有实例化。我错过了什么?
有红宝石没有::new
方法,您通过#initialize
定义它,当你调用super它调用Matrix::[]
与提供的参数。
看那source code:
def Matrix.[](*rows)
Matrix.rows(rows, false)
end
你可以尝试用你的逻辑定义Grid::rows
代替。或者只是覆盖#initialize
顺便说一句,这是写得不好,他们应该做rows(rows,false)
(无矩阵),以防止就此问题。
你的意思是'#initialize'? – Tal 2013-03-04 20:27:16