可能重复:std :: ifstream类的设计为什么(i | o)fstream采用const char *参数作为文件名?
看看std :: ifstream的构造函数,我发现两个:
ifstream ( );
explicit ifstream ( const char * filename, ios_base::openmode mode = ios_base::in );
为什么第二个采用 const char *
而不是 const std::string &
?
这是某种避免循环或前向参考吗?
2 回答
这是一个简单的遗漏 . 没有人及时想到它 . 这已在C 11中得到纠正,其中
std::string
也被接受 . 从27.9.1.7/3开始:您的编译器已过期 . 升级它,你应该找到一个
std::string
构造函数 .