【发布时间】:2018-03-29 20:03:22
【问题描述】:
有什么方法可以将ifstream 转换为istream?我有一个名为getToken(istream* br) 的函数,它接受istream 作为参数,但在我的main() 中,我使用ifstream 来读取文件,并且我必须使用相同的ifstream 来调用getToken。我该如何克服这个问题?
【问题讨论】:
-
你不需要它是已经一个
ìstream -
ifstream派生自istream。您应该可以将其传递给getToken。当你尝试时会发生什么?显示minimal reproducible example -
除了 Galik 的评论,如果你真的想要
istream&或istream*,你可以dynamic_cast它。但这不是必需的,并且会增加额外的开销。另见dynamic_cast and static_cast in C++。
标签: c++ casting ifstream istream