一个不解的参数传递问题?
在我的程序中,有一个类xx(无继承类),父类yy和子类zz,在类xx.cpp中的函数调用一个zz中的函数(参数类型说明为父类yy)。测试结果发现,子类zz中的参数值在调用前类型是zz*,并且测试是对的,但是在该函数体内测试时,发现传入的参数值有部分丢失的现象,不知大家碰到过这样的情形没有,可是我实在测试好几遍了,请各位高手指点一下,不尽感谢。
部分代码如下所示。
class xx
{
void units(xx*, zz *t);
}
// xx.cpp
void xx::units(xx *s1, zz *t)
{
zz *ki; ki=new zz();
... //此处测试的参数值t是对的
ki->compare(t);
...
}
class yy
{
...
}
class zz: public yy
{
int compare(yy *ss);
}
//zz.cpp
int zz::compare(yy *ss)
{
zz *curs=(zz*)ss;
... //其中测试发现所赋值curs不对
}
不解??