今天在重构一些 C++ 代码时,我得到了一些归结为以下代码

class x
{
  public:
    void x::y();
};
x:: 范围解析运算符在这里做了什么,是一个错误,还是其他什么。我最好的猜测是它是一些自动完成遗留下来的人工制品,但我很想知道我是否遗漏了什么。使用的编译器是VS2010 SP1。

最佳答案

这是一个错误,大多数编译器会拒绝它。例如,GCC says

prog.cpp:4:10: error: extra qualification ‘x::’ on member ‘y’ [-fpermissive]
     void x::y();
          ^

C++11 8.3/1 不允许使用冗余限定符:



没有任何异常(exception)适用于其类内的成员声明。

关于c++ - 不寻常的范围解析运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25975678/

10-14 07:01