| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2291 人关注过本帖, 1 人收藏
标题:求助:extern一个类的全局变量,类成员不能更改
只看楼主 加入收藏
bacchae
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-17
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:4 
求助:extern一个类的全局变量,类成员不能更改
我自己定义了一个类,然后在app.h里申明:extern Cmyclass *globe;再在app.cpp里定义:Cmyclass *globe = new Cmyclass;
这样我设置了globe这个全局变量,编译运行都没有问题。但是现在我只要增加或删除Cmyclass的成员,编译通过没有报警,可是一执行就崩溃。回复到原来的类成员就又正常了。
直觉是链接器没有更新我的这个类。我已经把debug文件夹以及.ncb, .APS, .opt什么的都删了,我实在想不出还有什么地方留下了原来那个类的痕迹。
我在网上找了两天帖子了,只有一句提到过类似的问题,也是语焉不详。
请编程论坛的大侠帮忙看看
搜索更多相关主题的帖子: extern 变量 全局 成员 
2010-10-17 17:27
taiyang0331
Rank: 2
等 级:论坛游民
帖 子:35
专家分:20
注 册:2008-9-24
收藏
得分:10 
我自己定义了一个类,然后在app.h里申明:extern Cmyclass *globe;
再在app.cpp里定义:Cmyclass *globe = new Cmyclass

 app.h 中的 extern Cmyclass *globe 不要
2010-10-18 11:04
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:10 
什么意思?已经把debug文件夹以及.ncb, .APS, .opt什么的都删了 与这个有关系吗???

然后在app.h里申明:extern Cmyclass *globe;再在app.cpp里定义:Cmyclass *globe = new Cmyclass;


你为什么要这么写呢 有什么特殊的意义吗?
2010-10-18 16:19
bacchae
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-17
收藏
得分:0 
在app.h里申明extern Cmyclass *globe即是申明全局变量,然后在某一处定义它。这是在网上看到的全局变量设置方法,现在所有include app.h过的里都可以访问到globe。
现在的问题是只能在myclass.h里保持原来数量的成员,多一个少一个都不行(编译能通过,运行即错误)。
所以删掉了除源码和工程以外的文件,看看能不能去掉对Cmyclass的“记忆”,可还是不行。
2010-10-18 17:04
bacchae
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-17
收藏
得分:0 
哦~~~搞定了,天哪~~~
我犯了个低级错误,原来是:我有一个dll,是另起工程做得,它使用了原来的Cmyclass定义,重新编译这个dll就好了
2010-10-18 20:04
快速回复:求助:extern一个类的全局变量,类成员不能更改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016184 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved