Require override of parent virtual function
<p>I'm working on a serialization system, and all my serializable classes implement</p>

<pre><code>virtual void serialize(Buffer buffer);
</code></pre>

<p>When a pointer is going to be serialized, I need to call the serialize() function of the class itself, and not that of any of its parents, even if the pointer is a parent type, and I've been running into a lot of bugs because I don't notice that a child class doesn't even have serialize() at all so the parent serialize() class is just being called</p>

<p>ie</p>

<pre><code>class A
{
    virtual void serialize();
}

class B:public A
{
    virtual void serialize();
}

class C:public B
{
    virtual void serialize();
}

void doSerialization(A *a)
{
    a-&gt;serialize();
}


C *c=new C();
doSerialization(c);
</code></pre>

<p>right now, if C didn't have a serialize function, B::serialize() would be silently called.  I'd prefer an error message, or anything else that will at least point it out to me.  Is there any keyword in C++ (even '11) that would do this?</p>
