比如我想写一个函数是这样的:
function(UnknownClass)
{
   UnknownClass * myClass = new UnknownClass;
}
这个参数该怎么的呢??
或要怎么写才可以打到这样的目的啊?

解决方案 »

  1.   

    BOOL CTabPageCtrl::InsertItem(int nItem, UINT nIDTemplate, CRuntimeClass *pSonClass, LPCTSTR lpszItem)
    {
    CTabCtrl::InsertItem(nItem,lpszItem); UINT nSchema;
    if((pSonClass = CRuntimeClass::Load(?????,&nSchema)) == NULL)
    return FALSE; CObject * pObject = pSonClass->CreateObject(); return TRUE;
    }Load函数的第一个参数怎么写啊?
      

  2.   

    等了半个多小时了,点音信也没啊!郁闷!!
    实在不会,在《深入浅出MFC》上找了半天也没找到答案,
    就将了动态创建的原理。实际操作起来还是不会啊!!
      

  3.   

    templete <class T>
    function(T)
    {
       T * myClass = new T;
    }
      

  4.   

    用CRumtimeClass* 传递一个指针。
      

  5.   

    翻翻MFC的源代码,看看文档模板怎么根据运行时信息创建文档视图框架类
      

  6.   

    你可以定义一个参数为void*类型的函数
    function(void* lparam)
    {
       UnknownClass * myClass = (UnknownClass*)lparam;
       //然后就可以使用这个类的指针了,来操作类对象了
    }
    可以如下使用UnknowClass* p = new UnknowClass;function(p);
      

  7.   

    如果你使用哪个MFC 就把要用的类从CObject 派生    不使用MFC 就仿造MFC 的动态对象机制做一个 类似的类把 这样在MFC中你的函数就可以写成如下形式:
    function(CRuntimeClass *pClass)
    {
       pClass->CreateObject( );
    }
      

  8.   

    如果未知类是你自己写的,可以在基类增加一个虚函数,例如:CreateClass之类的,然后每一个从基类派生的都实现它。
      

  9.   

    利用RTTI吧,提供一个无参构造函数,然后在类的h和cpp文件里插入动态创建的声明和实现宏。//下面是MFC的示例:
    CRuntimeClass* m_pFloatingFrameClass = RUNTIME_CLASS(CMiniDockFrameWnd);创建类时这样进行:
    pFrame =(CMiniDockFrameWnd*)m_pFloatingFrameClass->CreateObject(); 
    if(pFrame == NULL)
    {
    AfxThrowMemoryException();
    }
    ASSERT_KINDOF(CMiniDockFrameWnd, pFrame);