名字空间定义.doc

名字空间定义.doc

名字空间定义 缺省情况下,在全局域(也被称作全局名字空阎域, global namespace scope)中声明的每个对象、函数、类型或模板都引入了一个全局实体( global entity)。在全局名字空间域引入的全局实体必须有惟一的名字。例如,函数和对象不能有相同的名字,无论它们是否在同一程序文本文件中被声明。 这意味着,如果我们希望在程序中使用一个库,那么我们必须保证程序中的全局实体的名字不能与库中的全局实体名字冲突。如果程序是由许多厂商提供的库构成的,那么这将很难保证,各种库会将许多名字引入到全局名字空间域中。在组合不同厂商的库时,我们该怎样确保程序中的全局实体的名字不会与这些库中声明的全局实体名冲突?名字冲突问题也被称为全局名字空间污染(global namespace pollution) M题。 程序员可以通过使全局实体名字很长,或者在程序中的名字前面加个特殊的字符序列前缀,从而避免这些问题。例如: class cplusplus_primer一mair工x{…}; void工"verse(cplusplus.primer一matrlx&); 但是,这种方案不是很理想。用C+十写的程序中可能有相当数目的全局类、函数和模板在整个程序中都是可见的。对程序员来说,用这么长的名字写程序实在是个累赘。 名字空间允许我们更好地处理全局名字空间污染问题。库的作者可以定义一个名字

文档评论(0)

1亿VIP精品文档

相关文档