我想创建一个从许多其他类收集信息并结束模拟的类。为此,它必须独立于所有其他类并且完全可访问。为此,我选择了静态方法,确实是静态结构。
这是我的 Foo.h
class Foo
{
public:
static int app_counter;
typedef struct
{
double eed;
int bits;
}APPLayer;
static APPLayer applayer_metric;
public:
Foo(){};
~Foo();
};
这是 Foo.cpp
#include "Foo.h"
int Foo::app_counter=0;
//How do I set all internal members to zero?
Foo::APPLayer applayer_metric;
Foo::~Foo()
{
std::cout << app_counter << std::endl;
//Which is the way to access to the values of my members?
std::cout << applayer_metric.bits << std::endl;
}
这是我在 Foo.CPP 中遇到的错误
Foo.cc:38:未定义的对“Foo::applayer_metric”的引用
例如,如果我将 Foo.cpp 中的行更改为这一行
std::cout << Foo::applayer_metric.bits << std::endl;
我得到完全相同的错误。
我的问题是:
- 如何将静态结构变量的所有成员初始化为零?
- 如何在 Foo.cpp 的其他函数中访问这些成员?
仅供参考,如果我初始化并访问变量“app_counter”,没有任何抱怨
我究竟做错了什么?
提前致谢。