范围操作员(::)在班级名称中做什么

What the scope operator ( :: ) do in the class name

本文关键字:什么 操作员 范围      更新时间:2023-10-16

我发现以下类声明很难理解:

class App::Impl

现在的班级名称app :: shrom?范围操作员::在类名称中做什么?

范围分辨率运算符(::)用于识别并指定标识符所指的上下文。因此,这里的AppImpl属于的命名空间。我们可以通过在不同的名称空间中将其子划分来拥有具有相同名称的不同类。在这种情况下,我们需要指定类的名称空间。

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

在这里我们可以使用X::NameY::Name

app是您称为Impl的该类的名称空间,可以在具有差异的更多命名空间中定义。

在C ::中是范围分辨率运算符。它用于告诉编译器哪些名称空间或类属于什么。

在这种情况下,App::Impl告诉编译器您正在谈论属于AppImpl