我想创建一个类,从许多其他类和模拟结束收集信息。为此,它必须独立于所有其他类并且完全可访问。为此,我选择了一种静态方法,一种静态结构。
这是我的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&lt;&lt; Foo :: applayer_metric.bits&lt;&lt;的std :: ENDL;
我得到完全相同的错误。
我的问题是:
仅供参考,如果我初始化并访问变量“app_counter”,则没有抱怨
我做错了什么?
提前致谢。
答案 0 :(得分:3)
您对Foo::applayer_metric
的定义缺少范围解析运算符。将其更改为:
Foo::APPLayer Foo::applayer_metric;