代码之家  ›  专栏  ›  技术社区  ›  void.pointer

静态初始化的反面是什么?

  •  1
  • void.pointer  · 技术社区  · 6 年前

    在通信之前初始化的对象时 main() 主() ).

    3 回复  |  直到 6 年前
        1
  •  1
  •   Barmar    6 年前

    不管对象是静态的还是动态的,调用析构函数时发生的操作都是“销毁”。

        2
  •  2
  •   Loki Astari    6 年前

    这里的问题是,您试图从功能的角度来描述流程。这对于C++来说是不起作用的,因为我们没有一个“静态初始化”或运行之前的函数/代码的概念。 main() .

    C++中的代码运行方法 是通过物体的构造/破坏。所以你必须用这些概念来描述过程。

    相反的做法是:销毁静态存储对象。


    有关存储持续时间对象的更多详细信息:

    C++中有4种对象。

    1. 静态存储持续时间对象
    2. 动态存储持续时间对象
    3. 自动存储持续时间对象
    4. 线程存储持续时间对象。

    每种类型都有一个特定的创建和销毁时间。

    然后有一些关于何时调用对象构造函数/析构函数的规则(如果对象类型有构造函数/析构函数)。

    静态存储持续时间对象

    销毁顺序100%明确。这是完全相反的建设顺序。因此,所有“静态存储持续时间”对象都将按与结构完全相反的顺序销毁(在main完成之后)。当对象被销毁时,它的析构函数被调用(如果它有析构函数的话)。

        3
  •  0
  •   FLUXparticle    6 年前