所以我有这样的东西... C ++ MFC VS 110
class CObList //this is the Windows DLL class
{
POSITION AddTail(CObject* newElement);
};
CMyClass : public CObList
{
virtual POSITION AddTail(CObject* pObject);
};
function(CObList& list)
{
CObject ob;
list.AddTail(&ob);
}
main()
{
CMyClass list;
function(list);
}
当main :: function()运行并调用AddTail()时,CMyClass :: AddTail()没有运行...如果重要,CObList和function()都在DLL中。
AddTail在CObList中不是虚拟的......我可以不覆盖吗?或者是因为我将我的CMyClass转换为CObList&它失去了高CMyClass功能?我通常将指针传递给基类,他们发现高级函数就好了。
答案 0 :(得分:1)
您需要将您的功能设为虚拟,如:
class CBase
{
virtual protected void AddTail(CObject* ob);
};
我相信这会成功。