C++——对象构造顺序

来源:互联网 发布:淘宝网应用 编辑:程序博客网 时间:2024/05/16 15:29

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

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

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

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

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

原创粉丝点击