c++如何将类声明为文件的本地类

标签 c++ class scope static translation-unit

所以,我知道静态函数是文件本地的函数。因此,不能从其他文件访问它们。这也适用于类吗?我已经阅读了大量关于 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/

相关文章:

python - 令人困惑的 global 在 Mark Lutz 的 "Learning Python"中的使用

delphi - 如何从派生类访问隐藏成员?

java - 如何在 Java 代码中使用从 .dll 中使用和返回对象的函数?

c++ - C++ 类的预先定义

javascript - 如何使用 jQuery 停止列表最后三个元素的操作

ios - 未调用 Swift 类函数

javascript - 如何在 angular.js 中调用 ng-title 属性上的作用域函数

c++ - 用 min_element boost 信号

c++ - 生成密度不均匀的随机数

c++ - 这段代码是如何工作的?