|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 0和NULL的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
657
人关注过本帖,
1
人收藏
标题:
0和NULL的问题
只看楼主
加入收藏
八画小子
等 级:
贵宾
威 望:
37
帖 子:709
专家分:2063
注 册:2010-11-11
结帖率:
96.55%
楼主
收藏
(1)
已结贴
√
问题点数:20 回复次数:13
0和NULL的问题
有一个ValNode类,有两个构造函数,一个接受长整型,另一个接受指向字符串的指针。但在主函数中如果有这样的语句,ValueNode num; num = 0;则会变异出错。猜测是0和空指针发生冲突,请问如何处理。不想大动干戈来改用string类,也不想在0之前加 (unsigned long long)之类的东西,怕以后忘了。
搜索更多相关主题的帖子:
如何
字符串
2011-08-10 14:30
举报帖子
使用道具
赠送鲜花
八画小子
等 级:
贵宾
威 望:
37
帖 子:709
专家分:2063
注 册:2010-11-11
第
2
楼
收藏
得分:0
但如果把0改为其他的值则编译通过。
2011-08-10 14:31
举报帖子
使用道具
赠送鲜花
jcw08120110
来 自:南京
等 级:
蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
第
3
楼
收藏
得分:5
都可以用不过我建议你多用0少用NULL他们是等价的;
你可以定义一个 const int NULL = 0;然后放心得使用 NULL;
君生我未生 我生君以老
2011-08-10 14:48
举报帖子
使用道具
赠送鲜花
xg5699
等 级:
黑侠
帖 子:140
专家分:522
注 册:2011-7-27
第
4
楼
收藏
得分:0
错误报告是什么?
ValueNode num; num = 0;
将num赋值为0我觉得应该是调用ValueNode 类中的带一个参数的构造函数
即ValueNode(long );
不知道你那个带一个参数的构造函数里面是什么东东了
[
本帖最后由 xg5699 于 2011-8-10 15:23 编辑
]
都不结贴我郁闷那!
2011-08-10 15:03
举报帖子
使用道具
赠送鲜花
八画小子
等 级:
贵宾
威 望:
37
帖 子:709
专家分:2063
注 册:2010-11-11
第
5
楼
收藏
得分:0
我只不过是举个具体的例子。我是想问,如果0和空指针相互发生冲突的时候,也就是说有代码 =0; 编译器提示可能会认为是空指针时,如何修改程序?
2011-08-10 16:38
举报帖子
使用道具
赠送鲜花
xg5699
等 级:
黑侠
帖 子:140
专家分:522
注 册:2011-7-27
第
6
楼
收藏
得分:0
回复 5楼 八画小子
发一个简单点的程序具体说明下,不然不能理解你的意思.
都不结贴我郁闷那!
2011-08-10 17:50
举报帖子
使用道具
赠送鲜花
八画小子
等 级:
贵宾
威 望:
37
帖 子:709
专家分:2063
注 册:2010-11-11
第
7
楼
收藏
得分:0
设计了一个ValueNode类,其中有两个构造函数
ValueNode(const char * v);和
ValueNode(const unsigned long long x);。
在主函数中有这样几句
ValueNode num;
num = 0;
这是编译不通过,但如果把0换成其他的正值却是可以的。
2011-08-10 20:38
举报帖子
使用道具
赠送鲜花
xg5699
等 级:
黑侠
帖 子:140
专家分:522
注 册:2011-7-27
第
8
楼
收藏
得分:5
回复 7楼 八画小子
你不把错误或者整个代码发出来怎么能知道错误?
你不清楚定义的对象=0;是调用哪个带参的构造函数你可以做测试
在2个带参的构造函数中添加输出语句,比如
ValueNode(const char * v){cout<<"运行了char构造函数";}和
//ValueNode(const unsigned long long x){cout<<"运行了long构造函数";}
自己调试一下在 ValueNode a;a=0;就只运行这2句,看看可不可以运行,不行在
//ValueNode(const char * v){cout<<"运行了char构造函数";}和
ValueNode(const unsigned long long x){cout<<"运行了long构造函数";}
哪个不能通过就看看哪个程序里有什么问题
都不结贴我郁闷那!
2011-08-10 21:36
举报帖子
使用道具
赠送鲜花
lintaoyn
等 级:
小飞侠
威 望:
4
帖 子:606
专家分:2499
注 册:2009-4-8
第
9
楼
收藏
得分:5
(char*)0
0L
这是指对你提出的问题的解决方法,编译时出现二义就指明它的类型是什么。
迭代的是人,递归的是神。
2011-08-10 22:09
举报帖子
使用道具
赠送鲜花
八画小子
等 级:
贵宾
威 望:
37
帖 子:709
专家分:2063
注 册:2010-11-11
第
10
楼
收藏
得分:0
还是9楼和其他的人才是真正的高手,一眼就看出问题的关键,不像8楼的,尽说些无关紧要的问题,还说什么要发代码。
但我是不想在0的前面或后面加些东西,要不以后很难维护代码。万一哪次忘了应该加东西,那就麻烦了,还很难找出问题的所在。
请问有没有解决办法?
2011-08-10 23:11
举报帖子
使用道具
赠送鲜花
14
1/2页
1
2
快速回复:
0和NULL的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved