私はシリアル化システムに取り組んでおり、すべてのシリアル化可能なクラスは実装しています
virtual void serialize(Buffer buffer);
ポインターをシリアル化するときは、ポインターが親型であっても、クラス自体のserialize()関数を呼び出す必要があり、その親の関数を呼び出す必要はありません。子クラスにserialize()がまったくないことに気づかず、親のserialize()クラスが呼び出されているだけなので、バグが多くあります。
すなわち
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でも)のキーワードはありますか?