error: extra qualification ‘SampleProcess::’ on member ‘frameprocess’ [-fpermissive] void SampleProcess::frameprocess(void *frameparam);
时间: 2024-02-05 08:04:24 浏览: 113
这个错误提示是因为在类的定义中,你使用了类名限定符来限定类的成员函数,这是不必要的。在类定义中,成员函数默认都属于类的作用域,因此不需要使用类名限定符。
例如,在下面的代码中,frameprocess 函数就不需要使用类名限定符:
```
class SampleProcess {
public:
void frameprocess(void *frameparam);
};
void SampleProcess::frameprocess(void *frameparam) {
// do something
}
```
如果你还是想使用类名限定符,可以在函数定义之前加上类名限定符,例如:
```
class SampleProcess {
public:
void frameprocess(void *frameparam);
};
void SampleProcess::frameprocess(SampleProcess::void *frameparam) {
// do something
}
```
但是,这样做是不必要的,因为成员函数默认就属于类的作用域。
相关问题
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 'MessageAlert::' on member 'ShowAlertMessage' [-fpermissive] void MessageAlert::ShowAlertMessage(const QString& strWidgetName, const int iLeft, const int iTop ^~~~~~~~~~~~
这个错误是因为在类的定义之外,函数的实现中使用了类的限定符号。可以将函数实现中的类限定符号去掉,只保留函数名和参数列表即可。例如,将函数实现中的 "MessageAlert::" 去掉,变成 "void ShowAlertMessage(const QString& strWidgetName, const int iLeft, const int iTop)"。