16 6 E:\c++\c++实验原文件\实验程序\5.13.cpp [Error] extra qualification 'Base::' on member 'operator[]' [-fpermissive]
时间: 2024-03-21 07:43:51 浏览: 9
这个错误是因为在类的实现中,对于成员函数 `operator[]` 使用了多余的限定符 `Base::`。通常情况下,如果成员函数在类的内部定义,不需要使用限定符来指定其属于哪个类。
要解决这个错误,可以在类的实现中将成员函数 `operator[]` 的定义改为:
```
int MyClass::operator[](int index) {
// 函数体
}
```
其中 `MyClass` 是定义 `operator[]` 的类的名称,不要使用多余的限定符。
相关问题
error: extra qualification ‘Whufly::setpoint_raw::’ on member ‘setpoint_raw’
这个错误通常是因为在类定义外部定义成员函数时使用了额外的限定符,比如在类名后面使用了作用域解析符号 "::"。可以将函数定义改为内联或将其定义移动到类声明中来解决这个问题。
例如,对于下面的类定义:
```
class Example {
public:
void setpoint_raw(float x, float y);
};
void Example::setpoint_raw(float x, float y) {
// do something
}
```
如果在类定义之外定义函数时使用了额外的限定符,就会出现上述错误。我们可以将函数定义改为内联:
```
class Example {
public:
void setpoint_raw(float x, float y) {
// do something
}
};
```
或者将函数定义移动到类声明中:
```
class Example {
public:
void setpoint_raw(float x, float y);
};
inline void Example::setpoint_raw(float x, float y) {
// do something
}
```
error: extra qualification ‘SampleProcess::’ on member ‘frameprocess’ [-fpermissive] void SampleProcess::frameprocess(void *frameparam);
这个错误提示是因为在类定义中,成员函数的定义中出现了多余的限定符 `SampleProcess::`。在成员函数的实现中不需要再次添加类名限定符。
举个例子,如果你在类定义中声明了一个成员函数 `void frameprocess(void *frameparam);`,那么在实现该函数时应该这样写:
```
void SampleProcess::frameprocess(void *frameparam) {
// 实现函数的具体逻辑
}
```
如果你在实现函数时写成了这样:
```
void SampleProcess::frameprocess(SampleProcess::void *frameparam) {
// 实现函数的具体逻辑
}
```
那么编译器就会提示你这个错误。去掉多余的限定符即可解决该问题。