当前位置: 首页 > 知识库问答 >
问题:

在类外使用“static”指令有什么可能的优点?[副本]

孟鹤龄
2023-03-14

我对函数库和名称空间做了一些实验。我注意到您可以将名称空间中的函数声明为statice,尽管它不在类声明中:

ANameSpace
{

    static void aFunc();

};

CPP:

ANameSpace
{

    static void aFunc()
    {
        std::cout<<"Static function called"<<std::endl;
    }

};

我理解static类成员的概念以及它们是如何非常有用的,但是在类外使用static有什么特别的优点吗?

注意:我投了最后一票来关闭这个问题(不能删除,因为有答案),因为引用为dup的引用,尽管范围要广得多,但包含了对statice的详细讨论。但我不确定它是否准确地回答了我现在重新表述的问题。

共有1个答案

萧晔
2023-03-14

静态全局函数仅在文件范围内可见。这可能是由于C语言的兼容性,而这也是可能的。

这很好地总结了静态的每一种可能使用。

 类似资料:
  • 我一直在对函数库和命名空间进行一些实验。我注意到您可以将命名空间中的函数声明为,尽管它不在类声明中: 水电站: cpp: 我理解类成员的概念,以及它们如何非常有用,但是在类外使用有什么特别的优势吗? 注意:我投了最后一票来结束这个问题(不能删除,因为有答案),因为引用为dup的引用虽然范围更广,但包含对的详细讨论。但我不确定它是否完全回答了我现在重新措辞的问题。

  • 在使用 gcc 编译发布版本时,我是否应该始终指定 标志,还是还有其他可能的缺点?

  • 对于任何与用R处理数据相关的东西,我最近一直认为tidyverse被推荐为几乎是必不可少的。这就提出了一个问题--如果这就是它被大肆宣传的那样,还有什么理由不使用它吗?例如,tidyverse中的框架是否有任何值得提及的限制性?

  • 问题内容: 所以我对墙碰到头了,希望有人能帮忙移开墙或阻止我的头移动! 在过去的3/4周中,我一直在调查ORM是否准备好进行新项目。ORM必须映射到现有的,大型且老化的SQL数据库。 所以我尝试了Subsonic。改装后,我真的很喜欢v2和v3与VB一起很好地工作,并且SQL中的命名模式运行正常。但是,由于缺乏将单独的实体属性名称与列名称分开的灵活性,这使我无法抽身(对不起,Rob)。 我尝试了E

  • 为什么我们不能决定让它不是静态的呢?它让我们做什么?

  • 通常,我们应该使用关键字来定义类的计算属性,如 但是,我们不能使用来定义一个存储的属性(我知道它来自OC)。 同时可以在类中使用来定义存储的属性并使其成功运行。 所以我的问题是:和在类中使用时有什么区别?