与全局变量构造析构顺序有关的一道面试题(C++)

原创 2006年06月26日 13:20:00
题目是
#include  <iostream>
int  main()
{
    std::cout<<"This is in main"<<std::endl;

    return 0;
}

如何在不修改上述代码中mian()里面的部分,使输出的内容为:
Start
This is in main
End

解答:
此题我一开始想到的方法是重写std里得cout类,修改其中<<运算符的实现,经过面试我的高手提示,说是重载这个运算符比较危险,而且需要重写全部的函数不太现实。当时比较沮丧,没有想到其他的办法。

回来后,复习基础知识中发现有关于全局变量介绍的这么一句话:
全局对象在调用 main之前初始化, 在退出main之后析构
真是一语惊醒梦中人,完全可以用申明一个全局变量的方法实现上面这个题目。
具体实现代码如下,就是在main之前加了一个gb类的定义,然后在新建一个这个类的全局变量:

#include "stdafx.h"
#include <iostream>

class gb
{
public:
    gb::gb()
    {
        std::cout<<"start"<<std::endl;
    };

    gb::~gb()
    {
        std::cout<<"end"<<std::endl;
    };
};

gb a;

int main()
{
    std::cout<<"This is in main"<<std::endl;
   
    return 0;
}

C++如何禁止全局对象被析构

C++如何禁止全局对象被析构 转自http://www.fenesky.com/blog/2014/04/15/global-object-destructor.html 全局对象无论是在...
  • hudaliquan
  • hudaliquan
  • 2015年11月26日 14:33
  • 1198

C++全局变量与静态变量构造析构顺序问题

今天看到C++全局变量和静态局部变量的构造析构顺序的一道题,自己不会,于是就做了个实验,记录下来。实验代码如下: #include class A { int aaa; public: ...
  • qiu824039983
  • qiu824039983
  • 2016年08月25日 16:16
  • 1794

C++中关于全局对象的初始化顺序

在stackoverflow上看到下面这样一个问题: 这个问题很简单,意思就是两个全局不同类的instance,其中一个依赖另一个,怎么确保他们的构造顺序。也就是说O2依...
  • fuliangcheng1985
  • fuliangcheng1985
  • 2014年01月03日 15:42
  • 1498

2018秋招面经——C++后端

某不知名二本财经院校秋招辛酸史。。。。9.17(16:20) 先锋商泰一面:(C++开发) 上海微盟 百度作业帮 土巴兔 小米...
  • wyq_5
  • wyq_5
  • 2017年11月30日 17:08
  • 329

C++ 网络编程 数据结构 面试题罗列

在这里有我自己的面试问题,还有网上收集的。 1. connect方法会阻塞,请问有什么方法可以避免其长时间阻塞? 2. 网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道? 3...
  • u010154685
  • u010154685
  • 2016年07月27日 11:43
  • 1757

与全局变量构造析构顺序有关的一道面试题(C++)

原文地址:http://blog.csdn.net/wstarx/archive/2006/06/26/836373.aspx题目是#include  int  main(){    std::co...
  • itkbase
  • itkbase
  • 2008年01月03日 09:26
  • 156

与全局变量构造析构顺序有关的一道面试题(C++)

原文地址:http://blog.csdn.net/wstarx/archive/2006/06/26/836373.aspx题目是#include  int  main(){    std::co...
  • dongfengsun
  • dongfengsun
  • 2007年01月10日 11:21
  • 2039

STL面试题二

http://wiki.xyzp.net/index.php?title=Moto%E7%AC%94%E8%AF%95%E9%A2%98%E7%9B%AE-STL/C%2B%2B%E9%9D%A2%E...
  • etwdone
  • etwdone
  • 2013年03月25日 15:50
  • 4541

C++笔试题(八).B站

三. 有200亿条数据,每条数据的大小在1K~1M不等,每条数据都有一个唯一的u_int64的id,请设计一个读取数据系统,能根据id获取数据。 要求: 1.内存有限制,不超过16G 2.尽可能利用内...
  • qq_33826977
  • qq_33826977
  • 2017年09月16日 22:10
  • 298

全局对象和全局静态、局部静态析构顺序

多久不用C++ ,好多東西都模糊了,最近跟人討論全局和靜態的析構順序,之前總覺得這個根據編譯器來決定的,其實還是有一定的說法的。 記錄一下:1. 全局与静态对象析构的顺序class A destru...
  • cartzhang
  • cartzhang
  • 2017年06月07日 21:49
  • 949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:与全局变量构造析构顺序有关的一道面试题(C++)
举报原因:
原因补充:

(最多只允许输入30个字)