有好的办法来判断成员数据是否空值?

fylinwater 2003-09-30 12:05:47
一个类有很多成员数据
有些数据如果没有通过某个渠道获取值,就要表示空值,
有什么好的办法处理它?
如果每个成员都用指针表示,如果为NULL倒是可以判断数据是不是空,但就是这样的话类使用起来有点麻烦。
如果用某个特殊数据表示,倒也可行,就是觉得怪怪的,还担心会有点点风险
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengqinggao 2003-09-30
  • 打赏
  • 举报
回复
iInt是有值了,但是可能是0,也可能是无穷大,这样可能也可以算空值,根据系统需要决定
fylinwater 2003-09-30
  • 打赏
  • 举报
回复

BOOL IsNull(int iInt);
BOOL IsNULL(class T)
如何来判断是不是空值?
既然用
IsNull( iInt);不就是说iInt已经有值了吗?
wuxfBrave 2003-09-30
  • 打赏
  • 举报
回复
我的思路,用模板

BOOL IsNULL(class T)
{
}

然后未每个数据类型实现一个判断是否空的方法

还是用指针最简单,好处理了,不过要小心
fengqinggao 2003-09-30
  • 打赏
  • 举报
回复
呵呵,楼上的纠正得对,我只顾着写思路,忘了细节问题了,不好意思,:)

PS:用CString的IsEmpty()函数亦可
bluebohe 2003-09-30
  • 打赏
  • 举报
回复
if(sString == NULL)
这句话是有错误的!
sString是一个参数传进来的对象,只要对象存在,不可能是NULL值(MFC没有重载CString到int的转换,NULL就是0拉),所以应该改成==""

以后注意,这很容易引起非常难以发现的异常错误!
fengqinggao 2003-09-30
  • 打赏
  • 举报
回复
利用函数的重载基本可以做到。
用同一个函数的名字,然后以不同类型的数据作为参数,然后根据参数编制不同的函数体:
BOOL IsNull(CString sString)
{
if(sString == NULL)
return TRUE;
else
return FALSE;
}

同理可以编制:
BOOL IsNull(int iInt);
等等,将来,不管什么数据,就调用IsNull()函数就可以了

虽然函数多写,但是比较通用,用起来也比较方便,感觉还行,呵呵
bluebohe 2003-09-30
  • 打赏
  • 举报
回复
建议你使用指针,指针太方便了,
我觉得也只能用指针来表示
或者就做得象_variant_t似的,属于那种多态的数据,自然能放空值

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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