未定义的引用foo :: bar static ofstream

时间:2013-03-08 01:03:06

标签: c++

我一直在努力编译我过去三天所花费的程序,我无法弄清楚如何让它停止抛出错误。我不断收到编译错误“未定义引用Foo :: bar”,其中“bar”是Foo.h文件中声明的静态流。

foo.h中

Class Foo
{
    public:
          <insert methods>
    private:
          static ofstream& bar;
 }

Foo.cpp中

#include <iostream>
#include <fstream>
#include <sstream>
#include "EventReport.h"
using namespace std;

Foo::Foo()
{
   bar.open("foobar.txt");
}

我一直在Foo.cpp中的“bar”上收到错误消息(文件中有多个)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

undefined reference to Foo::bar

该错误意味着您告诉编译器此对象存在...

class Foo {
      static ofstream& bar;
};

...编译器决定使用它。

但你从未定义过它。这是未定义的。

将此添加到Foo.cpp:

ofstream& Foo::bar = (something);