当前位置: 首页 > news >正文

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

原文地址:http://blog.csdn.net/wstarx/archive/2006/06/26/836373.aspx

题目是
#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;
}

相关文章:

  • sql 让每行显示两次_SQL基础-复杂查询
  • 关于Symbian的程序已经关闭错误
  • led灯条维修_格栅屏和普通屏的区别?LED格栅屏是如何防水的
  • 时间条控件制作简明教程
  • python asyncio socket_用python asyncio写一个MMO(2)
  • 深入理解Symbian控件架构
  • Symbian程序图标问题
  • 无符号数相减_关于超自然数的构造——非标准分析
  • ListBox控件
  • 分析称2007年IT巨头将争夺三大领域
  • python canny优化_python实现canny边缘检测
  • add多个文件 git 文件夹_穿越时空的git之创建版本库和常用命令操作
  • 终究需要什么呢?
  • python批量上传 服务器_批量从本地上传文件到指定服务器或从指定服务器下载文件...
  • 一本传世的游戏关卡制作秘笈
  • 【刷算法】求1+2+3+...+n
  • angular2开源库收集
  • JavaScript实现分页效果
  • Laravel核心解读--Facades
  • PHP 小技巧
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Vue UI框架库开发介绍
  • vue-router 实现分析
  • 微信小程序填坑清单
  • 以太坊客户端Geth命令参数详解
  • 译有关态射的一切
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • #QT项目实战(天气预报)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (ros//EnvironmentVariables)ros环境变量
  • (一)基于IDEA的JAVA基础1
  • *p++,*(p++),*++p,(*p)++区别?
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET建议使用的大小写命名原则
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET上SQLite的连接
  • .net下的富文本编辑器FCKeditor的配置方法
  • ?php echo ?,?php echo Hello world!;?
  • @angular/cli项目构建--Dynamic.Form
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ 第一章] JavaScript 简史
  • [C#][DevPress]事件委托的使用
  • [C++]类和对象【上篇】
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽
  • [hdu 4405] Aeroplane chess [概率DP 期望]
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式