【发布时间】:2021-01-15 19:34:11
【问题描述】:
我特别想弄清楚 std::string 类从哪里获得方法 std::getline ?据说 std::string 的这个method is non-member function 是overloaded in std::string。但是 getline 存在的起点在哪里?将它放入 std::string 类的顺序是什么?这个方法是从某个地方继承来的,还是只是出现在无人区的 std::string 类文件中?和std::istream的getline有关系吗? std 类的继承结构是否有一些明确的描述?考虑 std lib 的这种结构会很方便。遗产。也许它在某些文档中。吨。 c.
这里其实有两个问题:
-
getline出现的机制与继承等事物有关 -
std继承结构的俯视图
谢谢!
【问题讨论】:
-
std::getline是在<string>头文件中声明的独立模板函数。 -
标准库很少使用继承。
std::istream有一个基类,但除此之外我已经想了一会儿才能找到一个例子 -
我刚刚查看了从 CodeBlocks 右键按 #include
引导到的包含文件,并且只有 #include-s 和所有。为什么我在其中看不到 std::getline?或者它是一些专有的隐藏? -
在 cppreference 上,派生类在页面顶部附近有一个描述继承层次结构的图表。示例:
std::fstream。也不是很多您习惯使用的名称是更长、更精确名称(可能是模板)的别名。 -
标准库头文件会变得非常疯狂。我有点幸运。我正在使用的实现留下了一个方便的评论:
#include <bits/localefwd.h> // For operators >>, <<, and getline.以帮助追踪getline。
标签: c++ inheritance getline