任何具有内部链接的东西都可以放在C ++的头文件中。为什么?

时间:2016-05-09 09:55:39

标签: c++

例如: - 以下一些例子。每种情况下的解释都是有利的。

1. Static variable/object.
2. Static const variable/object.
3. const variables.
4. inline functions .

1 个答案:

答案 0 :(得分:1)

    命名空间范围内的
  1. static表示此翻译单元的本地",因此您将在包含标题的每个单元中获取该对象的新副本。 / p>

  2. 同样的事情。

  3. 默认情况下,它们具有内部链接。

  4. 这些不是,但该语言有一条规则,即只要每个"复制"看起来完全相同。这是因为,从历史上看,编译器只能对同一翻译单元中可见的功能进行内联。如今,存在链接时优化。