加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 不寻常的范围解析运算符

发布时间:2020-12-16 10:35:03 所属栏目:百科 来源:网络整理
导读:在今天重构一些C代码时,我得到了一些代码,可以归结为以下内容 class x{ public: void x::y();}; x :: scope解析器操作符是否在此处执行任何操作,是一个错误,还是其他内容.我最好的猜测是,它是一些自动完成遗留下来的人工制品,但我很想知道我是否遗漏了任何东
在今天重构一些C代码时,我得到了一些代码,可以归结为以下内容

class x
{
  public:
    void x::y();
};

x :: scope解析器操作符是否在此处执行任何操作,是一个错误,还是其他内容.我最好的猜测是,它是一些自动完成遗留下来的人工制品,但我很想知道我是否遗漏了任何东西.正在使用的编译器是VS2010 SP1.

解决方法

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

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

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

A declarator-id shall not be qualified except for the definition of a member function or static data member outside of its class,the definition or explicit instantiation of a function or variable member of a namespace outside of its namespace,or the definition of an explicit specialization outside of its namespace,or the declaration of a friend function that is a member of another class or namespace.

没有适用于其类中的成员声明的异常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读