游戏开发论坛

 找回密码
 立即注册
搜索
楼主: moremoretime

[C++语法]一个特殊的问题?

[复制链接]

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-28 16:28:00 | 显示全部楼层

Re: Re:[C++语法]一个特殊的问题?

小陈00: Re:[C++语法]一个特殊的问题?

同一个模块的全局变量是在main之前依次构造,main后依次拆构的.不同模块顺序==连接顺序,但是好象有时候编译器...


“有时候编译器的技术也会影响.”

问题的关键可能是这一句!

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-28 16:30:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

而且vc6.0还没支持标准C++,我也还在用,正想着怎么升呢?

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-10-28 21:17:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

ok, 我使用的是VC6 + sp6 + stlport 4.6.2:
1、别在任何的全局变量中使用cout这类的C++流,因为这些流在main之前还没有被构造,所以程序会出错。建议用C的IO函数——printf。
2、我的运行结果是所有的全局变量先构造,然后是局部的,析构顺序是先是局部后是全局,而且是先定义的后析构,这跟我们在教科书上学的一致,即:构造函数在main之前被运行,在main之后调用其析构函数。
3、我用汇编跟踪的结果也是这样,编译器先建立a1,接着调用其构造函数,再把其析构函数放入一个在main函数退出时运行的函数,b1同理。
4、楼主的关于全局变量的析构问题,我通过汇编跟踪,结果是编译器会在main之后生成并调用一个函数,用于对全局变量的清理工作,析构函数就在这个函数中被调用。
5、如果楼主是VC6,建议安装sp6,同时使用C++标准的库。
请大家批评指正!

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-28 22:01:00 | 显示全部楼层

Re: Re:[C++语法]一个特殊的问题?

william9527: Re:[C++语法]一个特殊的问题?

ok, 我使用的是VC6 + sp6 + stlport 4.6.2:
1、别在任何的全局变量中使用cout这类的C++流,因为这些流在m...


那怎么解释运行的结果,有时显示全局的对象被析构了,有时却没有呢(我想应该都被析构了,当然了…… [em10])?如果说是cout的问题,又为什么呢?是因为出了main之后,cout就先被释放了,以至于调用了全局对象的析构函数,却无法显示吗?可是有时又可以啊!这怎么解释呢?

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-28 22:05:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

我试的结果是,都能显示!

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-28 22:08:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

对了,william9527,能告我sp6和stlport都是干什么用的?和vc6搭配有什么用处吗?

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-10-29 09:35:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

sp6是补丁,
stlport是sgi stl在不同编译器下的port,大多用在vc6以用hashtable

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-29 09:51:00 | 显示全部楼层

Re: Re:[C++语法]一个特殊的问题?

SevenCat: Re:[C++语法]一个特殊的问题?

sp6是补丁,
stlport是sgi stl在不同编译器下的port,大多用在vc6以用hashtable


是什么补丁,干吗用的?
sgi stl是什么,hashtable又是什么?

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-10-29 09:53:00 | 显示全部楼层

还是那句老话,以我的智力水平,很难向你解释清楚.

rt
你要是hashtable不知道是什么东东的话,估计你刚上大一.

26

主题

324

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
QQ
发表于 2004-10-29 11:12:00 | 显示全部楼层

Re:[C++语法]一个特殊的问题?

我不是学计算机的,我大三。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 02:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表