第五十讲 一个答案

 

 

 

昨天留给大家的问题看大家的回答,可以说是五花八门,很有意思,其实这个问题很简单的了,就是考大家的C++基础知识,回顾一下我们的原题:

—————————-

#include <iostream>

using namespace std;

int main{

 

 

 

 

 

 

 

cout<<"

Hello World"

<<endl;

 

 

 

 

 

 

 

return 0;

}

—————————–

 

 

 

 

 

 

我们要在不改变main程序的情况输出:

——————————–

start

Hello World

end

——————————–

 

 

 

 

 

 

稍微注意一点,我们的main程序最多能够输出Hello World,但是我们想要在前后各输出一句,然而又不能修改mian,所以一部分人可能开始困惑了。

 

 

 

 

 

 

 

现在大家来思考一个问题,有什么东西是在main之前构造又是在程序结束之后销毁呢?如果大家基础知识过硬的话一定不难想到能够有次功能的当然是……

 

 

 

 

 

 

 

好吧,我们来看下面这个例子:

————————————

#include <iostream>

using namespace std;

const
int x=6;

int main{

 

 

 

 

 

 

 

cout<<"

Hello World"

<<endl;

 

 

 

 

 

 

 

return 0;

}

————————————

 

 

 

 

我们可以在int main这一行设一个断点,运行程序,当程序停下来的时候的时候我们看看x的值是多少:

第五十讲 一个答案

 

 

 

 

 

 

大家现在已经明白一个事实,那就是全局变量通常都是在最开始构造,同样在最后摧毁,那么现在大家是不是想起什么了呢?

 

 

 

 

 

 

构造一个对象需要用到构造函数,摧毁一个对象自然调用一个析构函数,所以我们只要在main前面添加一个class,只需要写两构造函数和析构函数即可,如下:

————————————

#include <iostream>

using namespace std;

class Test{
 

public:
 

 

 

 

 

 

 

 

 

Test(){cout<<"

Start"

<<endl;

}
 

 

 

 

 

 

 

 

 

 

 

~Test(){cout<<"

End"

<<endl;

}
 

};

Test  

test;

int main{

 

 

 

 

 

 

 

cout<<"

Hello World"

<<endl;

 

 

 

 

 

 

 

return 0;

}

———————————–

 

 

 

 

 

现在,构造函数在最开始被执行,所以在进入main之前便打印出:

————–

start

—————

 

 

 

 

 

 

接着进入main,打印出:

———————–

Hello World

————————

 

 

 

 

 

 

当程序退出时执行全局变量的析构函数,于是打印出:

—————–

end

——————-

 

 

 

 

 

 

Ok,今天的任务完成了,那么再留给大家一个任务:

 

 

 

 

 

 

 

用我所学的知识来写一个跳棋游戏。

 

=====================

回复D直接查看目录

 

原文始发于微信公众号(

C/C++的编程教室

):第五十讲 一个答案

|

发表评论