班级成员的额外资格

extra qualification for class member

本文关键字:成员      更新时间:2023-10-16

可能重复:
为什么编译器支持冗余作用域限定,它合法吗?

我真的能像一样写代码吗

class Foo
{
public:
    Foo();
};
Foo::Foo::Foo::Foo::Foo::Foo() {}

gcc编译它。添加这个特性的原因是什么?

特性是类型的名称被注入到类作用域内,也就是说,在类Foo内有一个隐含的typedef Foo Foo;排序。

该功能存在于该语言中,因为在一些构造中,嵌套类型是必需的。例如,当通过显式命名要选择覆盖器的层次结构级别(obj.Base::f())来禁用动态调度时。

最初的列表有大约10个奇怪的结构,必须为其提供名称,并且通过在所有上下文中提供嵌套名称来简化它,这反过来意味着它允许您编写有趣的语法。