有一了张有类名,函数指针,动态创建函数的链表,我们就可以知道应该按什么步骤去动态创建了:
1、获得一要动态创建的类的类名(假设为A)。
2、将A跟链表里面每个元素的m_lpszClassName指向的类名作比较。
3、若找到跟A相同的类名就返回A所属的CRuntimeClass元素的指针。
4、判断m_pfnCreateObject是否有指向创建函数,有则创建对象,并返回该对象。
代码演示如下(以下两个函数都是CRuntimeClass类函数):
///////////////以下为根据类名从表头向表尾查找所属的CRuntimeClass对象////////////
CRuntimeClass* PASCAL CRuntimeClass::Load()
{
char szClassXXX[64];
CRuntimeClass* pClass;
cin>>szClassXXX; //假定这是我们希望动态创建的类名
for(pClass=pFirstClass;pClass!=NULL;pClass=pClass->m_pNextClass)
{
if(strcmp(szClassXXX,pClass->m_lpszClassName)==0)
return pClass;
}
return NULL
}
文章来源于领测软件测试网 https://www.ltesting.net/