C ++标准库中的几个类名称中包含“base”或“basic”。示例包括std::ios_base
和std::basic_ios
。我对这些惯例有一个粗略的认识,但我希望看到它们拼写出来,我找不到能够做到这一点的资源。
对于名称中带有“base”或“basic”的类,有关类层次结构,模板和typedef的约定是什么?
答案 0 :(得分:3)
std::basic_foo
是一个类的模板,它以某种方式处理文本,并且可以专门用于各种字符类型。
std::foo
是std::basic_foo<char>
的typedef。
std::wfoo
是std::basic_foo<wchar_t>
的typedef。
示例:std::basic_ios
,std::basic_string
,std::basic_regex
。
另一方面,std::ios_base
是一个特例。没有任何约定说基类应该以这种方式命名,而且我不知道任何其他的例子。我想他们只是想出一个更好的名字。
答案 1 :(得分:0)
解释
基地:任何东西的底部支撑;一件东西停留或搁置的东西。
基本的:基础或基础的,与之相关的或形成基础或基础的;基本的;底层;基本的或简单的;不包括新增内容或附加内容。
因此基类是基础,基本字符串是未经专门化的基础字符串。对我来说似乎是明智的。