読者です 読者をやめる 読者になる 読者になる

特異クラスはインスタンス生成できるの?

ruby
mitsu@garlic$ cat hoge.rb
class C
end
c1 = C.new

def c1.hoge
  puts "hello world!\n"
end
C1 = c1.class
c2 = C1.new
# c2.hoge <= undefined method `hoge' for #<C:0x8076220> (NoMethodError)

puts C.object_id
puts C1.object_id

mitsu@garlic$ ruby hoge.rb
67350920
67350920
mitsu@garlic$

特異メソッドを持つインスタンスからクラスを取り出したクラスは、当該クラスのスーパークラスになるのかなぁ。

追記:rb_class_real()で頑張ってた。