各自从CObject继承来的两个类怎么写虚函数

各自从CObject继承来的两个类如何写虚函数?
我指的不是Serialize
class CYZFont:public CObject{
protected:
CYZFont(); 
DECLARE_SERIAL(CYZFont)
virtual void draw();
}
class CYZRect:public CObject{
protected:
CYZRect(); 
DECLARE_SERIAL(CYZRect)
virtual void draw();
}
CObList m_obList;
我将两个类指针存入链表,我遍历链表要执行draw函数,
除了用类型识别功能p->IsKinkof(RUNTIME_CLASS(CYZFont))判断是哪个派生类,还有没有什么好的办法?
函数前加virtual是不行的,因为基类没有此虚函数.
难道要我自己再加一层基类?统一把这个基类的的指针放入链表?那么代码又该怎么写呢?
请高手赐教,谢谢.

------解决方案--------------------
加一个基类,定义draw的虚函数,然后链表push进入对应的指针,调用的时候就可以调用各自子类的
------解决方案--------------------
晕,你可以给这两个类抽象出一个基类啊,注意将基类的父类定义为CObject就可以了。