首页 > 试题广场 >

main 函数执行以前,还会执行什么代码?

[单选题]
main 函数执行以前,还会执行什么代码?
  • 全局对象的构造函数
  • 全局对象的析构函数
  • 局部对象的构造函数
  • 局部对象的析构函数
推荐
Dp头像 Dp
答案:全局对象的构造函数会在main 函数之前执行。
编辑于 2015-02-03 09:48:31 回复(0)
全局对象的构造函数在main函数之前调用,析构函数在main函数之后调用。
局部栈对象在定义的时候调用构造函数,出了可见范围的时候调用析构函数。
堆对象在new的时候调用构造函数,delete的时候调用析构。
全局静态对象和全局对象一样。
局部静态对象在定义的时候调用构造,main函数之后调用析构
发表于 2015-09-01 12:23:45 回复(2)

先构造后析构 创造出来后才能分析

发表于 2019-09-11 06:39:52 回复(0)
构造函数和析构函数的区别:
构造函数:对象实体创建的时候调用;【造,成员赋值】
析构函数:对象实体销毁时调用;【拆,销毁空间】
也就是提供一种机制:允许在这段时间内插入自定义操作;
初始化和释放内存,只是一种通常用法;
发表于 2018-04-17 11:39:08 回复(0)
main函数执行之前,主要就是初始化系统相关资源:
1.设置栈指针
2.初始化static静态和global全局变量,即data段的内容
3.将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容
4.运行全局构造器,也就是执行构造函数
5.将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数
6.全局对象的析构函数会在main函数之后执行; 
发表于 2022-09-22 14:04:00 回复(0)
在执行main函数之前,会先调用全局构造函数。
发表于 2016-05-24 18:27:47 回复(0)
构造函数是用于初始化对象的特殊成员函数,这些构造函数的调用时间是由对象的生命周期决定的。
发表于 2023-10-14 23:19:13 回复(1)