为什么getline的字符串版本是非成员函数?

Cas*_*ash 8 c++ string std

getline函数具有作为成员函数的字符版本,以及采用字符串的全局版本.为什么他们不是会员职能?目前的方式似乎没有字符串版本.

Mar*_*gen 5

istream& istream::getline(char* s, streamsize n) 是流接口的一部分.

istream& getline(istream& is, string& str)是一个来自库的扩展方法string(就像istream &operator>>(istream&, string&)).

可能选择这种设计是为了将iostream字符串分离,因为fstream::open()也不需要std::string参数const char*.