我正在开发一个序列化系统,我所有的可序列化类都实现了
virtual void serialize(Buffer buffer);
当一个指针要被序列化时,我需要调用类本身的 serialize() 函数,而不是它的任何父类的函数,即使指针是父类型,我已经遇到了很多的错误,因为我没有注意到子类甚至根本没有 serialize() 所以父 serialize() 类只是被调用
IE
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)中是否有任何关键字可以做到这一点?