-1 c++ casting istream ifstream
有什么方法可以转换ifstream成一个istream?我有一个函数调用getToken(istream* br),接受一个istream作为参数,但在我main()使用an ifstream来读取文件,我必须使用它ifstream来调用getToken.我怎样才能克服这个问题?
正如评论中所提到的,你不需要做任何花哨的事情.该std::ifstream类型从继承std::istream,以便接受一个任意函数istream*可以采取的指针ifstream作为输入.例如:
string getToken(istream* stream) {
...
}
ifstream fileStream;
getToken(&fileStream);
Run Code Online (Sandbox Code Playgroud)
流类是专门为使这样的操作成为可能而设计的.