一个关于全局指针的问题啊,注意!菜鸟勿进!!!

xiaogang_1 2008-05-29 04:08:01
假如我有Class a这个类,我在 a.cpp里 定义一个a类型的全局指针, a* pa = NULL;然后我在a的构造函数中 pa = this;
再在b类中使用pa. extern a* pa; 利用pa来访问a类里的成员函数,结果发现a类里的vector<CPoint> pt.为空,
但是在a类里访问时,它不为空,以前我遇到过一次这种问题,将一个成员变量在构造函数里初始化后,就没事了,这次我把所有的变量都进行了初始化,可是还是不行!
...全文
257 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaogang_1 2008-05-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jmulxg 的回复:]
引用 10 楼 xkyx_cn 的回复:
在a的构造函数中 pa = this;

那不是每构造一个a对象,pa都要变?


这的确是一种丑陋的设计方法,应该实例化该类后,再将全局变量指针赋值。

除了全局变量外,你也可以使用引用的方式,来获取class a中成员变量。
[/Quote]


各位前辈啊,你们看看这里啊,他对的很对啊,我的那种方法是丑陋的设计方法,在设计是避免这种方法就可以了啊,我是用另外的一直方法实现我程序里的一个功能的,所以啊,我也没有办法告诉各位前辈,我是怎么实现的啊,
我想只要避免在构造函数里赋值,应该不会出现问题的啊!各位前辈请原谅啊!
chenph 2008-05-29
  • 打赏
  • 举报
回复
我不是高手,但这里不乏高手,看到lz的口气没几个愿意给你解答.友情提醒.
帅得不敢出门 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 leelittlelong 的回复:]
解决了也不说说是咋解决的。晕。
[/Quote]
楼主不厚道
xiaogang_1 2008-05-29
  • 打赏
  • 举报
回复
哈哈,我都结贴了啊,我是用另外的一种方法解决的啊
leelittlelong 2008-05-29
  • 打赏
  • 举报
回复
解决了也不说说是咋解决的。晕。

qmm161 2008-05-29
  • 打赏
  • 举报
回复
我是菜鸟,不过我很好奇是为什么
dwen20 2008-05-29
  • 打赏
  • 举报
回复
昏,从1楼看下来,猜了一遍,现在说解决了,啥都没有看到。
snailman 2008-05-29
  • 打赏
  • 举报
回复
哎,我是菜鸟,期待高手~! -_-!!
xiaogang_1 2008-05-29
  • 打赏
  • 举报
回复
谢谢各位前辈了,问题,我已经解决了,
9527- 2008-05-29
  • 打赏
  • 举报
回复

看不到代码,大家只能瞎猜,就像15楼说的在做黑盒测试
jmulxg 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xkyx_cn 的回复:]
在a的构造函数中 pa = this;

那不是每构造一个a对象,pa都要变?
[/Quote]

这的确是一种丑陋的设计方法,应该实例化该类后,再将全局变量指针赋值。

除了全局变量外,你也可以使用引用的方式,来获取class a中成员变量。
MagiSu 2008-05-29
  • 打赏
  • 举报
回复
不帖代码无法判断,按照楼主的说法,这种结果是不可能的。
cwc270 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xkyx_cn 的回复:]
在a的构造函数中 pa = this;

那不是每构造一个a对象,pa都要变?
[/Quote]
我觉得10楼说的,有可能是造成问题原因所在。楼主确定只创建过一个a类的实例??!!
xiaogang_1 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fetag 的回复:]
请楼主别再消息我了,我对菜鸟问题不敢兴趣!

至于我是不是菜鸟,随你怎么想,冲你这个标题,我就是不回你!爱咋咋地...
[/Quote]

哈哈,假如你不是菜鸟,我是菜鸟,您作为前辈的,指导指导晚辈就不行吗?难道就这么吝啬吗?
中国的程序员高手,难道就是这样让晚辈们去学习吗?我相信,中国的程序员高手不是你这个样子的!菜鸟也不会有你这个样子的!
matrixdwy 2008-05-29
  • 打赏
  • 举报
回复
可能你没有include
xkyx_cn 2008-05-29
  • 打赏
  • 举报
回复
不贴全部代码,好歹也贴下关键代码

不然除了你,大家都像在做黑盒测试一样,只能猜
freefishgis 2008-05-29
  • 打赏
  • 举报
回复
在a类外调用之前应该确保a被实例化过,否则不会执行a的构造函数
xiaogang_1 2008-05-29
  • 打赏
  • 举报
回复
你说的对啊,但我只构造了一个a的实例
babyvox1999 2008-05-29
  • 打赏
  • 举报
回复
你在a类里怎么访问?你确定访问的是同一个对象?你这样做是为了实现单键?
独孤过儿 2008-05-29
  • 打赏
  • 举报
回复
请楼主别再消息我了,我对菜鸟问题不敢兴趣!

至于我是不是菜鸟,随你怎么想,冲你这个标题,我就是不回你!爱咋咋地...
加载更多回复(10)

64,266

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧