zoukankan      html  css  js  c++  java
  • main方法执行之前,做什么事

    1、我们知道程序的入口是main方法,那么在执行main方法之前,需要做些什么准备工作呢?

    2、main方法执行之前,必须要把non-local static对象构造完成。static对象有:全局对象,命名空间中的对象,类的static对象(从封装的角度看,类也是一个命名空间),方法内的static对象,其中方法中的static对象是local static对象,其他的是non-local static对象,这些对象分配在全局区,程序结束才释放内存。

    3、local static对象直到方法被调用的时候,才进行初始化,而且只初始化一次。non-local static必须在main方法执行之前,进行初始化。

    4、在一个编译单元内,non-local static对象按照声明顺序进行初始化。不同编译单元,non-local static对象的初始化顺序是不确定的。为什么?

      因为C++编译器做不到,C++支持单独分别编译,源代码的编译顺序是不确定的。因此,不要期望编译器按照某种顺序初始化non-local static对象,这是不可能的。

    5、对于不同编译单元的non-local static对象A,B,我想先初始化A,在初始化B,怎么办?

      把A放在static方法中,暴露接口返回A的引用。

    6、与之对应,main方法执行完毕,析构static对象。

  • 相关阅读:
    时装画基础知识--如何画人体
    马士兵java视频学习顺序
    Mysql 中文字符乱码问题
    zendstudio 设置默认编码 utf-8 gbk
    MYSQL 本地无ROOT权限 忘记密码
    windows 3389 远程
    windows 老掉牙CMD的命令
    mysql-常用注入渗透手法
    ubuntu 添加多个IP
    windows下简单配置apache
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3558305.html
Copyright © 2011-2022 走看看