我的问题可能是非常基本的愚蠢,但我很困惑为什么输出是这样的。基于另一个类的红宝石对象模型+类创建
MyClass = Class.new String
MyClass.ancestors
=> [MyClass, String, ..]
AnotherClass = Class.new MyClass
=> AnotherClass
AnotherClass.ancestors
=> [AnotherClass, MyClass, String, ..]
在上面的代码
,I M创建类名为MyClass的一个新实例,并已通过所述对象(一切红宝石是一个对象)“字符串”作为参数。为什么'字符串'出现在MyClass的祖先列表中。我没有从String继承MyClass,但这正是Ruby所做的。它确实作为复制构造函数工作,但为什么继承?
谢谢。现在我明白为什么Object是默认的超类。我认为它可能会在cpp代码中设置一些内部指针,但是这是在Class.new中设置的。再次感谢。 – 2013-02-12 15:53:45