我想創建一個從許多其他類中收集信息並且結束仿真的類。爲此,它必須獨立於所有其他類並且完全可訪問。爲此我選擇了靜態方法,確實是一個靜態結構。靜態struct成員獲取「未定義的引用」。不知道爲什麼
這是我的了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 ::法院< <富:: applayer_metric.bits < <的std :: ENDL;
我得到完全相同的錯誤。
我的問題是:
- 我如何初始化靜態結構變量的所有成員爲零?
- 如何在Foo.cpp的其他函數中訪問這些成員?
僅供參考,沒有抱怨,如果我初始化和訪問變量「app_counter」
我在做什麼錯?
在此先感謝。
[C++未定義參照靜態構件]的可能重複(http://stackoverflow.com/questions/9110487/c-undefined-reference-to-to-static-member) – PlasmaHH 2013-02-22 10:24:21
你在'int Foo :: app_counter = 0; e'中有一個尾隨的'e' – 2013-02-22 10:24:44
[有什麼意思對一個靜態成員有一個未定義的引用?](http://stackoverflow.com/questions/7092765 /它是什麼意思 - 有一個未定義的參考 - 一個靜態成員) – Mankarse 2013-02-22 10:27:58