如何将ifstream转换为istream

-1 c++ casting istream ifstream

有什么方法可以转换ifstream成一个istream?我有一个函数调用getToken(istream* br),接受一个istream作为参数,但在我main()使用an ifstream来读取文件,我必须使用它ifstream来调用getToken.我怎样才能克服这个问题?

tem*_*def 5

正如评论中所提到的,你不需要做任何花哨的事情.该std::ifstream类型从继承std::istream,以便接受一个任意函数istream*可以采取的指针ifstream作为输入.例如:

string getToken(istream* stream) {
    ...
}

ifstream fileStream;
getToken(&fileStream);
Run Code Online (Sandbox Code Playgroud)

流类是专门为使这样的操作成为可能而设计的.