名为" base"的类有哪些约定?和"基本"在C ++标准库中?

时间:2014-08-19 03:48:38

标签: c++ naming-conventions c++-standard-library

C ++标准库中的几个类名称中包含“base”或“basic”。示例包括std::ios_basestd::basic_ios。我对这些惯例有一个粗略的认识,但我希望看到它们拼写出来,我找不到能够做到这一点的资源。

对于名称中带有“base”或“basic”的类,有关类层次结构,模板和typedef的约定是什么?

2 个答案:

答案 0 :(得分:3)

std::basic_foo是一个类的模板,它以某种方式处理文本,并且可以专门用于各种字符类型。

std::foostd::basic_foo<char>的typedef。

std::wfoostd::basic_foo<wchar_t>的typedef。

示例:std::basic_iosstd::basic_stringstd::basic_regex

另一方面,std::ios_base是一个特例。没有任何约定说基类应该以这种方式命名,而且我不知道任何其他的例子。我想他们只是想出一个更好的名字。

答案 1 :(得分:0)

解释

基地:任何东西的底部支撑;一件东西停留或搁置的东西。

基本的:基础或基础的,与之相关的或形成基础或基础的;基本的;底层;基本的或简单的;不包括新增内容或附加内容。

因此基类是基础,基本字符串是未经专门化的基础字符串。对我来说似乎是明智的。