gpt4 book ai didi

c++ - 什么是静态变量?

转载 作者:可可西里 更新时间:2023-11-01 15:32:07 25 4
gpt4 key购买 nike

静态变量的用途是什么? static int 和 int 有什么区别?

最佳答案

static 关键字有四个不同的用途,其中只有两个是密切相关的:

  • 全局和命名空间范围内的静态(适用于变量和函数)表示内部链接
    • 这被替换为 unnamed namespaces并且与其他无关
    • 特别是,其他人倾向于暗示某种唯一性,但内部链接意味着相反:你可以有许多同名的对象,只要每个对象都有内部链接,而你只有每个翻译单元一个
  • 静态数据成员在类的所有实例中“共享”
    • 更像是它们独立于任何类实例
    • 这有时与静态方法组合在一起
  • 静态方法不“操作”当前实例
    • 没有this指针;可以在没有实例的情况下调用
  • 静态局部变量(在函数中)在每个函数调用的范围内持续存在

静态数据成员和静态局部变量都可以成为隐藏的全局状态,应谨慎使用。

现在哪两个是密切相关的?这不是两个类成员——关于全局状态的警告泄露了它。您可以将静态数据成员视为静态局部变量,其中它们所属的函数都是类的方法,而不是单个函数。

我发现很多 related questions , 但令人惊讶的是,没有重复项。

关于c++ - 什么是静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com