大多数命名冲突发生情况

文件.cpp,b.cpp,和将所有编译main.cpp就好了,因为个人没有问题。然而,当.cpp和b.cpp放在同一个项目,一个命名冲突会发生,因为函数是定义在dosomething()。这将导致链接器错误。
大多数命名冲突发生在两种情况下:
1)将两个文件添加到具有相同名称(链接器错误)的函数(或全局变量)的同一个项目中。
2)一个代码文件包含一个包含一个与其他东西冲突的标识符的头文件(编译错误)。我们将在下一节课中讨论头文件。
随着程序变得越来越大,并使用更多的标识符,被引入的命名冲突的可能性大大增加。好消息是,C++避免命名冲突提供了大量的机制(如局部范围,使变量在函数内部的互相矛盾,和命名空间,我们将介绍不久),所以大部分时间你不需要担心这个。
std命名空间
当C++最初的设计,所有的C++标准库中的标识符(如CIN和法院)都可直接使用。然而,这意味着标准库中的任何标识符都可能与您为自己的标识符选择的名称冲突。代码工作可能会突然有一个命名冲突的时候你#包含标准库中的新文件。或更糟的是,程序将编译一个版本的C++下编译可能不是未来版本的C++下,作为新的功能引入到标准库可能冲突。所以C++感动所有功能在标准库为一个特殊的区域称为命名空间。
就像一个城市保证城市内的所有道路都有独特的名字,一个命名空间保证命名空间中的标识符是唯一的。这样可以防止命名空间中的标识符与其他标识符冲突。
原来,std::cout的名字并非“std::cout”。这实际上只是“cout”࿰

你可能感兴趣的:(大多数命名冲突发生情况)