如何定义文件流的静态指针?

时间:2017-06-26 16:36:12

标签: c++ pointers static

我需要一个指向输出文件流的静态指针。使用此代码:

#include <fstream>

class Test {
public:
    static std::ofstream *sOfs;
};

std::ofstream Test::*sOfs;

int main()
{
    Test::sOfs = new std::ofstream("test.txt");
    return 0;
}

我收到以下链接器错误:

In function `main':
source_file.cpp: undefined reference to `Test::sOfs'
clang: error: linker command failed with exit code 1

如果该成员不是静态的,那么构建就可以了 是否可以定义一个指向流的静态指针?怎么样?

1 个答案:

答案 0 :(得分:2)

正确的语法应该是

std::ofstream* Test::sOfs;

对于std::ofstream Test::*sOfs,您正在定义名为sOfs的全局变量,其类型为non-static data member pointer,指向类std::ofstream的成员Test }。