cannot declare member function ‘static int LabelParse::PrepareForParse(std::__cxx11::string&, std::bitset<200ul>&)’ to have static linkage [-fpermissive] cannot declare member function ‘static int LabelParse::PrepareForParse(std::__cxx11::string&, std::bitset<200ul>&)’ to have static linkage [-fpermissive]cannot declare member function ‘static int LabelParse::PrepareForParse(std::__cxx11::string&, std::bitset<200ul>&)’ to have static linkage [-fpermissive]
时间: 2023-09-16 12:07:42 浏览: 46
这个错误提示说明在类的定义中,尝试将成员函数`PrepareForParse`声明为静态成员函数,但是却指定了静态链接。在C++中,成员函数默认是非静态的,并且具有隐式的this指针,因此不需要显式指定为静态链接。
要解决这个问题,只需要将成员函数`PrepareForParse`声明为普通的非静态成员函数即可。例如:
```cpp
class LabelParse {
public:
int PrepareForParse(std::string& input, std::bitset<200>& bits);
};
```
不需要在声明中加上`static`关键字。这样就可以将`PrepareForParse`作为普通的成员函数使用,可以通过类的对象来调用该函数。
相关问题
cannot declare member function'static book HttpClient::HttpClientInit()'to have static linkage
这个错误是因为您在类的定义中声明了一个静态成员函数,但是在声明时没有使用 `static` 关键字。
您需要在类定义中声明静态成员函数时使用 `static` 关键字。例如:
```cpp
class HttpClient {
public:
static HttpClientInit(); // 声明静态成员函数时需要使用 static 关键字
};
```
如果您已经使用了 `static` 关键字,那么可能是因为您在另一个地方重复定义了该函数。请确保只有一个定义。
如果问题仍然存在,请提供更多代码以便我更好地帮助您解决问题。
cannot declare member function'static book HttpClient::HttpClientInit()'to have static linkage[-fpermissive]
这个错误一般是因为在类的定义中,将成员函数声明为了静态函数,但是在定义的时候没有使用 static 关键字,导致编译器认为这是一个成员函数而不是静态函数,因此出现了错误。
你需要在类的定义中,将成员函数声明为静态函数,并在实现的时候使用 static 关键字,例如:
```cpp
class HttpClient {
public:
static void HttpClientInit();
// ...
};
void HttpClient::HttpClientInit() {
// 实现代码
// ...
}
```
这样就可以解决这个问题了。