我一直在努力编译我过去三天所花费的程序,我无法弄清楚如何让它停止抛出错误。我不断收到编译错误“未定义引用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”上收到错误消息(文件中有多个)。有什么想法吗?
答案 0 :(得分:0)
undefined reference to Foo::bar
该错误意味着您告诉编译器此对象存在...
class Foo {
static ofstream& bar;
};
...编译器决定使用它。
但你从未定义过它。这是未定义的。
将此添加到Foo.cpp:
ofstream& Foo::bar = (something);