我的工作序列化系统的覆盖,和我所有的序列化类实现要求父虚拟功能
virtual void serialize(Buffer buffer);
当指针将被序列化,我需要调用的序列化()函数该类本身,而不是它的任何父母,即使指针是父类型,并且我已经遇到了很多错误,因为我没有注意到一个子类甚至没有序列化( ),所以父级序列化()类正被称为
即
class A
{
virtual void serialize();
}
class B:public A
{
virtual void serialize();
}
class C:public B
{
virtual void serialize();
}
void doSerialization(A *a)
{
a->serialize();
}
C *c=new C();
doSerialization(c);
现在,如果C没有序列化函数,B :: serialize()会被静默地调用。我更喜欢一个错误消息,或者其他任何至少会将它指向我的东西。 C++中是否有任何关键字(即使是'11)会这样做?
我想他的意思是,如果C没有声明一个,那么B就会被调用。无论如何,这使得他的发言很有意义。 – jthill 2013-03-01 22:44:22