0

我一直在尝试编译过去三天构建的程序,但我不知道如何让它停止抛出错误。我不断收到编译错误“未定义对 Foo::bar 的引用”,其中“bar”是 Foo.h 文件中声明的静态 ofstream。

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 的“栏”上收到错误消息(文件中有多个)。关于为什么的任何想法?

4

1 回答 1

0
undefined reference to Foo::bar

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

class Foo {
      static ofstream& bar;
};

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

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

将此添加到 Foo.cpp:

ofstream& Foo::bar = (something);
于 2013-03-08T01:05:11.473 回答