求助??为什么输出不一样?
#include<iostream.h>
class cobject
{
public :
virtual void serialize()
{
cout<<"cobject::serial"<<endl;
}
};
class cdocument:public cobject
{
public:
int m_data1;
void func()
{
cout<<"cdocument::func()"<<endl;
serialize();
}
virtual void serialize()
{
cout<<"cdocument::serialize()"<<endl;
}
};
class cmydoc:public cdocument
{
public :
int m_data2;
virtual void serialize()
{
cout<<"cmydoc::serical()"<<endl;
}
};
void main()
{
cmydoc mydoc;
cmydoc * pmydoc=new cmydoc;
mydoc.func(); // 1)
((cdocument*)(&mydoc))->func(); // 2)
pmydoc->func(); //3)
((cdocument)mydoc).func(); //4)
}
为什么第4个函数输出和前面三个不一样,为什么??
谢谢