可能重复:
在C++中定义静态成员
我在C++上工作不多,我不明白如何在C++中使用静态字段,它们似乎没用.请指正.
我不能这样做:
class AClass{
public:
static int static_field = 0;
};
Run Code Online (Sandbox Code Playgroud)
而且这也不起作用
class AClass{
public:
static int static_field;
};
int main(){
int AClass::static_field = 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*0te 15
实际上,你很亲密.
你应该移动:最好在CPP文件int AClass::static_field = 0;之外移动 main()它AClass.cpp.
这样,您在标头中声明它并在源文件中初始化它.您可以在设置此声明/初始化后立即使用它main()或在其他任何地方使用它AClass::static_field.
PS:他们绝对没有用武之地.
这是一个很好的用例...假设你有内存泄漏,你需要跟踪它们.你在你的类中放了一个静态计数器,所以该类的所有实例都共享它.然后,您可以使任何构造函数/析构函数递增和递减该计数器.因此,您可以打印计数器以显示有多少实例存在以帮助查找泄漏.
alv*_*med 11
您必须在main函数范围之外初始化static_field.
int AClass::static_field = 0;
int main(){
}
Run Code Online (Sandbox Code Playgroud)
尝试这个:
class AClass{
public:
static int static_field;
};
int AClass::static_field = 0;
int main(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12693 次 |
| 最近记录: |