【发布时间】:2015-02-09 09:52:16
【问题描述】:
我有多个源文件和头文件。他们是;
main.cpp tools.cpp hh.cpp fitness.cpp
tools.h hh.h fitness.h
我想在tools.h 中定义一个ofstream
tools.h 包含在所有其他源文件中。但是当我将std::ofstream myOutput; 添加到tools.h 中时,它会显示“myOutput 的多重定义”。但是,没有关于 myOutput 变量的任何其他行。
如果我能正确定义它,那么我想做myOutput.open("observe.txt",std::ofstream::app);。
【问题讨论】:
-
相关的 sn-p 代码会很有帮助。
-
@ShauryaChats 这是我的代码:stackoverflow.com/questions/28377741/…
-
tools.h 中有
extern std::ofstream myOutput;,tools.cpp 中有std::ofstream MyOutput;。确保它们被相同的namespace xyz { }块包围(如果适用),或者在 .cpp alastd::ofstream myNamespace::MyOutput;中添加命名空间作为前缀也就是说,它实际上是一个全局变量,有点代码味道 -如果可能的话,将它创建为需要它的函数中的本地堆栈托管变量,尽管这对于应用程序范围的日志文件之类的东西可能是不切实际的。 -
@TonyD 谢谢。有效。我需要它只是为了收集一些数据。然后我会删除它。所以它是全局的还是局部的并不重要。再次感谢。
-
@TonyD 完成。谢谢你。