2010-07-21 113 views
6

昨天,我发现在RSpec下面的代码:在Class中Class Class <:: OtherClassName是做什么的?

class OptionParser < ::OptionParser 

这是什么呢?这和class OptionParser < NameSpace::OptionParser有什么区别?运行时

class C 
    def initialize 
    puts "At top level" 
    end 
end 

module M 
    class C 
    def initialize 
     puts "In module M" 
    end 
    end 

    class P < C 
    def initialize 
     super 
    end 
    end 

    class Q < ::C 
    def initialize 
     super 
    end 
    end 
end 

M::P.new 
M::Q.new 

主要生产:

回答

8

一个可运行的例子可能更好地解释这个想法

In module M 
At top level 
+0

谢谢。 只要让我确认我的理解是否正确。在我的例子中,OptionParser在称为optparse的标准库中引用了OptionParser吗?确切地说, – suzukimilanpaak 2010-07-22 09:11:33

+0

。在你的例子中':: OptionParser'指的是标准库类 – bjg 2010-07-22 09:21:35

相关问题