首页 > 解决方案 > C++头文件中的静态函数

问题描述

我知道当我们将一个函数设为“静态”时,它的作用域是整个文件,也就是说,它可以在那个特定文件的任何地方使用,我们用它来将函数的作用域限制在一个特定的文件中。如果我们定义一个头文件,其中定义了一些函数,全部是静态的,会发生什么?如果我们将该头文件包含在另一个文件中,我们是否能够访问这些函数?

标签: c++staticheader-files

解决方案


当您包含标头时,预处理器将用文件内容替换 #include指令。之后,所有的规则都static适用。也就是说,如果您在某些编译单元(.cpp文件)中包含带有静态函数的头文件,则每个编译单元都将获得这些静态函数的自己的私有副本,这些静态函数只能从该编译单元访问。


推荐阅读