所以,我知道静态函数是文件本地的函数。因此,不能从其他文件访问它们。这也适用于类吗?我已经阅读了大量关于 static class
如何不将类声明为包含纯静态成员和方法(这是显而易见的)的争论,但找不到任何提到这是否会的内容声明该类可在文件范围内本地访问,这更合乎逻辑。
如果没有,使用匿名命名空间怎么样,我听说它也可以用来声明文件本地函数?
最佳答案
你可以在未命名的命名空间中定义一个类,例如
namespace
{
struct A {};
}
在这种情况下,类名将具有内部链接。也就是说,它仅在定义它的编译单元中可见,并且包含该定义的所有编译单元都将具有自己的类定义。
至于存储类说明符static
则(7.1.1存储类说明符)
5 The static specifier can be applied only to names of variables and functions and to anonymous unions
关于c++如何将类声明为文件的本地类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753597/