C++——对象构造顺序

程序里不可能只有一个对象,我们的程序里处处都是对象,那么对象的构造顺序是怎么样的呢。

还是按照在内存四区上的分布来分开说,此处不在说代码段。

如果对象是在栈上分配的,那么肯定是在函数中创建的,只要main函数开始执行,就有了程序执行流,所以分配在栈上的对象的构造顺序是按照顺序执行流和对象的定义语句来确定先后顺序的。

如果对象在分配在堆上的,那么我们值需要跟着程序执行流找到new出现的先后顺序就可以了,基本上和栈的是一样的,不过可以通过new来查看。

如果是分配在全局区的就比较麻烦了。如果是static的局部对象,那么把它分到堆栈上就可以,如果是全局的话,它的顺序就是不定的了,因为这时候还没有程序执行流,因为不同的编译器会自己定义一套规则去实现对象的构造,所以获取可以在一个编译器上分析出全局对象的构造顺序,但是不一定可以适合别的编译器。所以全局的对象的构造顺序是不确定的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值