如何使得代码在main函数之前/之后执行

main函数是整个C++程序的入口函数,如果程序想要在main函数之前/之后运行,则必须借助全局对象的构造和析构函数。

#include <iostream>

class A{
public:
    A(){std::cout << "A" << std::endl;}
    ~A(){std::cout << "~A" << std::endl;}
};

A a_global = A();

int main(){
    std::cout << "main-start" << std::endl;
    A a_local = A();
    std::cout << "main-end" << std::endl;
    return 0;
}

函数的输出如下:

A		//a_global构造函数
main-start	//---------------------------main()开始
A		//a_local构造函数
main-end	
~A		//a_local析构函数,-----------main()结束
~A		//a_global析构函数


在一个函数执行执行,其所需的对象变量已经初始化完毕。因此全局对象的初始化会在main之前。同理,全局对象的析构会在main之后。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值