就是在不知道具体的类型的情况下构造一个类,例如对void指针进行强制转换,
解决方案 »
- 如何准确性测试一个函数的运行时间
- 求助:注册OCX 返回错误0x80020009
- 为什么说面像对象的方法写出来的东西可重用性高?
- 关于划线划点的简单问题~~~~~~~请帮帮忙!
- 无法插入记录 ?
- 类型转换的问题。在线等待!
- 1000分相送!!!谁能写一个在windows中画弧的函数,可能画出任意大小的圆弧,比如R=100000等,速度要快,比如画几千个也要快速的Paint
- 在COM编程中,PROXY/STUB到底怎么解释为好?谁的COM厉害请解答!
- 关于Creat()函数的一个小问题~~急求答案
- 关于VS.net beta2体验版中的实验。
- 请问怎样得到windows任务管理器中进程的印象名称
- 一个概念性的问题
DECLARE_DYNCREATE()与IMPLEMENT_DYNCREATE()这两个都是动态创建的宏,如果要动态创建一个对象,就要引用着两个宏
具体的细节看看《深入浅出》吧,讲的应该很透彻的
2、生成类CObject CRuntimeClass::CreateObject(void)可以产生一个类变量。作用和new类似,但在某些特殊场合有独特的作用。下面举一个例子来加深了解。
假定有以下几个类定义class CWndA: public CWndclass CWndB: public CWndfunction1(){ CRuntimeClass* pC=RUNTIME_CLASS( CWndA ); CreateWnd(pC);}CWnd* CreateWnd(CRuntimeClass* pClass){ return (CWnd*)pClass->CreateObject();}
在上面例子中,CreateWnd返回的是CWnd* 其实它是一个CWndA*。你可以进行由父类到子类的强制转换而不必要担心出错。使用CRuntimeClass可以代替使用switch生产类实例的一些繁琐。(请好好想想它的用途,当你发现它的好处时,你一定会大吃一惊,M$使用宏来实现类的动态检测,如果谁有兴趣可以去看看MFC的源代码。)注意:在类的定义中使用IMPLEMENT_DYNCREATE后方可生效。
http://www.csdn.net/Expert/topic/470/470143.shtm