extern int g_serialData; 这个应该写在public里面吗?
时间: 2023-03-21 11:02:05 浏览: 67
这个声明看起来像是用于定义一个全局变量,而不是类的成员变量。如果您想在类中使用这个变量,可以将它声明为该类的静态成员变量。
如果您需要在类的外部访问该变量,您可以将其声明为公共静态成员变量,例如:
```
class MyClass {
public:
static int g_serialData;
//...
};
int MyClass::g_serialData = 0; // 必须在类外部初始化
// 在其他地方使用
MyClass::g_serialData = 10;
```
请注意,如果您只需要在类的内部使用该变量,则可以将其声明为私有静态成员变量,并提供一个公共的访问函数来获取和设置该值,例如:
```
class MyClass {
private:
static int g_serialData;
public:
static void setSerialData(int data) {
g_serialData = data;
}
static int getSerialData() {
return g_serialData;
}
//...
};
int MyClass::g_serialData = 0; // 必须在类外部初始化
// 在其他地方使用
MyClass::setSerialData(10);
int data = MyClass::getSerialData();
```
总之,您需要根据您的具体需求来决定是否需要在公共部分中声明变量。如果您需要在类的外部访问变量,则应该将其声明为公共静态成员变量。