新手求指导! 对经这构造函数后的值有疑问 求高手帮下忙
我把程序要用到的代码先贴在下边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) 的参数传值的
麻烦前辈们帮我解答一下好吗,学了些日子,碰到这问题 搞了二天没结果 快对学这个没信心了,麻烦大家帮下哦,谢谢