是::用于除“global ::”之外的任何其他内容

问题描述:

标题几乎可以解释这一切。 “namespace alias qualifier”有什么其他值(什么?)是::用于除“global ::”之外的任何其他内容

程序员可以定义新的吗?

将::列为运算符本身似乎很奇怪,并且页面似乎暗示可能存在其他值:“名称空间别名限定符可以是是全局的。”

查看extern alias的页面,以GridV1::GridGridV2::Grid为例。

您将使用它的主要地方是当您在项目中包含两个DLL并且这两个DLL在同一个命名空间中有一个具有相同名称的类时(例如,您正在使用同一个DLL中的两个版本你的项目)。 ::运算符允许您指定在发生类似命名冲突时指向哪个DLL。

+0

啊,我明白了。谢谢。运营商的页面没有提到这一点很奇怪。 – AlphaModder 2015-03-25 05:19:42

+0

“这两个DLL在同一个命名空间中都有一个具有相同名称的类(例如,您在项目中使用了同一个DLL的两个版本)” - 它不是很糟糕的设计吗?或者你指的是在同一时间使用不同版本的组件? – Amit 2015-03-25 05:24:07

+0

@Amit:据推测,两个或多个第三方库供应商会选择冲突的名称,因此不存在过多的设计。 – 2015-03-25 05:25:26