【问题标题】:Extra qualification C++额外资格 C++
【发布时间】:2021-03-17 17:54:44
【问题描述】:

我的编译器告诉我,我的一个成员函数有一个额外的限定错误,但我不知道为什么。

class DigitalTime {
 public:
  void DigitalTime::intervalSince(const DigitalTime& prev, int interval) const;
};

void DigitalTime::intervalSince(const DigitalTime& prev, int interval) const {
  return;
}

当我编译它时,它说我的函数 intervalSince 是额外合格的。希望大家帮我解决这个问题

main.cpp:3:21: error: extra qualification on member 'intervalSince'
  void DigitalTime::intervalSince(const DigitalTime& aPreviousTime,
       ~~~~~~~~~~~~~^
1 error generated.

【问题讨论】:

  • 请注意,一旦我们获取您的代码并删除所有与您的错误无关的代码,看看这个问题是多么简单!
  • @swittuh 你从比尔那里得到的答案没有回答你的问题吗?如果有,请accept回答。

标签: c++ class


【解决方案1】:

在类定义中定义函数和变量时,不要以类名作为前缀:

class DigitalTime {
public:
    void DigitalTime::intervalSince(const DigitalTime& previous, int interval);
};

应该是:

class DigitalTime {
public:
    void intervalSince(const DigitalTime& previous, int interval);
};

【讨论】:

  • 有趣的(对我来说 :-) 琐事。我一直在将一些遗留代码从古老的 Solaris 移植到 RHEL8 上的 g++。旧的 Solaris 编译器毫无怨言地让它通过了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多