我需要一个指向输出文件流的静态指针。使用此代码:
#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
如果该成员不是静态的,那么构建就可以了 是否可以定义一个指向流的静态指针?怎么样?
答案 0 :(得分:2)
正确的语法应该是
std::ofstream* Test::sOfs;
对于std::ofstream Test::*sOfs
,您正在定义名为sOfs
的全局变量,其类型为non-static data member pointer,指向类std::ofstream
的成员Test
}。