首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >静态类数据与C++中的匿名命名空间

静态类数据与C++中的匿名命名空间
EN

Stack Overflow用户
提问于 2009-05-13 13:02:04
回答 4查看 4.8K关注 0票数 16

我偶尔会有一些具有私有静态数据成员的类。我目前正在讨论是否应该在实现文件的未命名命名空间中将这些变量替换为静态变量。除了不能在内联方法中使用这些变量之外,还有其他缺点吗?我看到的好处是,它对类的用户完全隐藏了它们。

EN

回答 4

Stack Overflow用户

发布于 2009-05-13 13:17:18

我不相信这样的好处值得对可读性的影响。我通常认为一些隐私的东西是“足够隐蔽的”。

票数 4
EN

Stack Overflow用户

发布于 2009-05-13 13:19:52

它不仅对类的用户隐藏它们,还对您隐藏它们!如果这些变量是类的一部分,它们应该以某种方式与类关联。

根据您将如何处理它们,您可以考虑将它们设置为静态成员函数中的静态变量:

代码语言:javascript
复制
// header file
class A {
  public:
     static void func();
};


// cpp file
void A :: func() {
    static int avar = 0;
    // do something with avar
}
票数 1
EN

Stack Overflow用户

发布于 2009-05-13 13:28:55

我猜归根结底,这些变量在类的上下文中是否有一些实际意义(例如,指向所有对象使用的一些公共内存的指针),或者只是需要在方法之间传递的一些临时数据,而不是用来扰乱类的。在后一种情况下,我肯定会使用未命名的名称空间。在前者中,我会说这是个人品味的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/857814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档