C++内存模型和名称空间

内容包括:  单独编译;存储持续性、作用域和链接性;布局(placement)new 操作符;名称空间。

C++允许甚至鼓励程序员将组件函数放在独立的文件中。与其将结构声明加入到每一个文件中,不如将其放在头文件中,然后在每一个源代码文件中包含该头文件,这样,要修改结构声明时,只需在头文件中做一次改动即可。

头文件中长包含的内容有:

  1. 函数原型;
  2. 使用#define或者const定义的符号常量;
  3. 结构声明;
  4. 类声明;
  5. 模板声明;
  6. 内联函数。

当包含用户自己创建的头文件时,使用双引号包含文件名,从而与标准头文件的尖括号区别。eg:"coordin.h",而不是<coordin.h>.

在同一个文件中只能将同一个头文件包含一次。可以利用一种标准的C/C++技术避免包含多次的情况:基于预处理编译器指令#ifndef  ...  #endif.

因为不同的编译器表示函数名的方式不同,因此在连接编译模块时,请确保所有对象文件或库都是由同一个编译器生成的。

链接性:描述了名称如何在不同单元间共享。链接性为外部的名称可以在文件间共享,链接性为内部的名称智能由一个文件中的函数共享。自动变量没有链接性,因为他们不能共享。

C++比C语言进了一步——它提供了作用域解析操作符(::)。当放在变量名称前面时,该操作符表示使用变量的全局版本。

原文地址:https://www.cnblogs.com/babysunnie/p/3200923.html