首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关问题?

2012-02-25 
问题????????C/C++ code/*重载 运算符*/bool mystrin::operator (const mystrin& v) const {bool g0

问题????????

C/C++ code
/*重载 == 运算符*/bool mystrin::operator ==(const mystrin& v) const {    bool g=0;    int i=0;    if(b==0) {cout<<"不能为空!"; exit(0);}    if(b==v.b)//这里如果b与v.b不相等下面的是不是全部都不执行了         if(b!=0) {        do {            if(*(a+i)==*(v.a+i))            {g=1;i++;}            else g=0;        }while(*(a+i)!='\0' && g==1);    if(g==0) return g;    else if(*(a+i)=='\0' && g==1) return g;        }        else if((*this).b!=v.b) return g;//这里的else是不是和前面加注释的if匹配啊}


这是一个重载函数,我可能写的比较乱,
我的if else匹配有点乱啊
如果b与v.b不相等,函数没有返回值可为什么运行时没错啊
麻烦给看一下吧,谢谢了

[解决办法]
如果b与v.b不相等,执行 else if((*this).b!=v.b) return g;
[解决办法]
C/C++ code
//b是什么bool mystrin::operator ==(const mystrin& v) const {    bool g=0;    int i=0;    if(b==0) {cout<<"不能为空!"; exit(0);}    if(b==v.b)//这里如果b与v.b不相等下面的是不是全部都不执行了     {        if(b!=0)         {            do {                if(*(a+i)==*(v.a+i))                {                    g=1;                    i++;                }                else g=0;            }while(*(a+i)!='\0' && g==1);            if(g==0)            {                return g;            }            else                if(*(a+i)=='\0' && g==1) return g;        }    }    else    {        if((*this).b!=v.b) return g;//这里的else是不是和前面加注释的if匹配啊    }} 

热点排行