范围运算符(:)在类名中的作用

时间:2018-04-27 07:07:46

标签: c++ class

我发现以下课堂声明难以理解:

class App::Impl

班级名称现在是App :: Impl吗?范围运算符::在类名中做了什么?

3 个答案:

答案 0 :(得分:2)

范围解析运算符(::)用于标识和指定标识符所引用的上下文。所以这里App指的是类Impl所属的名称空间。我们可以通过在不同的命名空间中对它们进行子范围化来使不同的类具有相同的名称。在这种情况下,我们需要指定类的名称空间。

namespace X{
    class Name {}; 
} 
namespace Y{
    class Name {}; 
}

我们可以使用X::NameY::Name

答案 1 :(得分:1)

在C ++中::Scope Resolution Operator。它用于告诉编译器namespace或类属于什么。

在这种情况下,App::Impl告诉编译器您正在谈论属于Impl的{​​{1}}。

答案 2 :(得分:1)

App是您调用Impl的类的NameSpace,可以在更多具有差异的NameSpaces中定义。