【发布时间】:2015-10-14 13:28:42
【问题描述】:
在 Myclass.cpp 中:
const std::string FILE_NAME = "C:\\MyFileName.txt";
MyClass::MyClass()
{
ifstream fileToOpen;
fileToOpen.open(FILE_NAME); //FILE_NAME shows "" in debug
}
MyClass::OpenFile()
{
ifstream fileToOpen;
fileToOpen.open(FILE_NAME); //when called from another location, this resolves to proper file name.
}
我正在尝试在构造函数中打开一个文件。当我在该文件名上调用 open 函数时,常量变量解析为 "",但如果在其他地方调用该函数,它工作得非常好。我已经在 .h 文件中尝试过,结果相同。谁能解释一下为什么?
【问题讨论】:
-
静态初始化惨败?
-
@Nathan - 我的例子有什么问题。没有用大括号包围它以使其成为可编译的类,这基本上就是我想做的一切。
-
是的,但你没有告诉我们你在哪里调用构造函数。您应该发布最少量的代码来展示行为,以便我们自己尝试。
-
大胆猜测 - 您的 MyClass 实例也是静态变量吗?
标签: c++ file constructor io constants