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

How to define a static pointer to a file stream?

本文关键字:文件 静态 指针 何定义 定义      更新时间:2023-10-16

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

#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

如果成员不是静态的,则可以构建。
是否可以完全定义流向流的静态指针?如何?

正确的语法应为

std::ofstream* Test::sOfs;

对于std::ofstream Test::*sOfs,您正在定义一个名为sOfs的全局变量,类型的非静态数据成员指针指向成员,其中 Test类型std::ofstream