注册 登录
编程论坛 C++教室

新手求指导! 对经这构造函数后的值有疑问 求高手帮下忙

woman553 发布于 2014-03-26 12:50, 360 次点击
我把程序要用到的代码先贴在下边
class CMessage
{
public:
    char *msg;
    CMessage::CMessage(char *s);
    bool operator >(CMessage&m);
};
CMessage::CMessage(char *s)
   {      
        printf("构 造this=%x\n",this);
    //分配空间
    msg=new char[256];
    //实现复制功能
    strcpy_s(msg,256,s);
   }
bool CMessage::operator >(CMessage &m)
{  bool r;//比较结果
   r=strlen(msg)>strlen(m.msg);//strcmp TRUE 1 FALSE 0
   return r;
}

int _tmain(int argc, _TCHAR* argv[])
{
    CMessage s1("123aaaaaa");
    CMessage s2("ab");
        if (s1>s2)
    {
        printf("s1大于s2");
    }
       else
       {  
        printf("s1小于s2");
       }
    getchar();
    return 0;
}
 问题1: 调试时发现,断在 if (s1>s2)  发现 s1="123aaaaaa"  s2="ab"   不知道经过那个构造函数后,msg="123aaaaaa"   s2="ab" 不知道他们是如
         何传值给 s1 与s2的,
 问题2:  引符号重载之后,s1 与s2 是如何给  bool CMessage::operator >(CMessage &m)  的参数传值的


麻烦前辈们帮我解答一下好吗,学了些日子,碰到这问题 搞了二天没结果 快对学这个没信心了,麻烦大家帮下哦,谢谢
0 回复
1