我只是想知道为什么在类中定义和在类中定义的成员函数tellg()
有basic_istream<>
不同tellp()
的basic_ostream<>
名称。那是因为basic_fstream<>
源自basic_istream<>
andbasic_ostream<>
吗?
问问题
6046 次
2 回答
8
tellg()
获取指针的位置get
并tellp()
获取指针的位置put
,其中一个是您读取的位置,第二个是您在文件中写入的位置。所以这两个函数做不同的事情并返回不同的值。为什么你认为他们应该有相同的名字?
于 2013-01-25T12:51:36.113 回答
7
你会如何在双向流中区分它们,比如std::fstream
or std::stringstream
?流被允许为输入和输出维护单独的指针:fstream
没有,但是stringstream
有。因此,您需要一个标志来指示您想要哪一个(如 中的情况streambuf
),或者您需要两个单独的函数。
于 2013-01-25T13:48:30.687 回答