首页 > 解决方案 > 接受重复的类限定符。为什么?

问题描述

一位同事向我发送了类似于以下的代码:

#include <iostream>

class Weird
{
public:
    Weird();
};

Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird::Weird()
{
    std::cout << "Ok, this is weird.\n";
}

int main()
{
    Weird a;
}

它编译并运行并产生“好的,这很奇怪”。我使用在线编译器尝试了 g++、clang 和 msvc,并且它适用于所有这些。

为什么接受重复的类名限定符?这是标准的意图吗?

标签: c++

解决方案


推荐阅读