如何通过一个String类型的类名,创建该类的一个实例。 Java的实现非常简单: Class clz = Class.forName("LoginDAO");我现在想知道C++中如何实现,多谢!(EOQ) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 反射 reflection C#中比较好用 String *str = new String; to oyljerry: 能够告诉我C#具体如何实现,我看看能不能的得到点启发。多谢 C#中可以实现,VC++中就不清楚了。不过曾经在网上看过用VC++实现反射的文章,没有仔细看。楼主好好找找。 如果用MFC的话.hclass CMyString: public CObject{ protect: CMyString(); DECLARE_DYNCREATE(CMyString).......cppIMPLEMENT_DYNCREATE(CMyString, CObject)创建RUNTIME_CLASS(CMyString)->CreateObject(); RUNTIME_CLASS// example for RUNTIME_CLASSCRuntimeClass* prt = RUNTIME_CLASS( CAge );ASSERT( lstrcmp( prt->m_lpszClassName, "CAge" ) == 0 );或者通过宏,其实RUNTIME_CLASS也就是通过宏来实现的 不行啊,楼上的大哥,还有啊我想要的是标准C++的实现啊,MFC是VC的东西啊 那就自己实现这个机制呗,参照MFC的方式,看看 深入浅出MFC。 用宏:#define NEW_OBJ(CLASS_NAME, OBJ, OBJ_VALUE) CLASS_NAME OBJ(OBJ_VALUE)如: NEW_OBJ(string, str, "Test"); cout << str << endl;会替换为: string str("Test") ; cout << str << endl; 关于多语言的问题 急!比如d:\a.lnk,我想对这个快捷方式设置快捷键,请问用代码怎么实现? 请教:如何快速打开20M的文本文件? SetMenuItemBitmaps为什么不起作用 怎么同时删除ListBox中选中的多个项? 查找文件问题 十分郁闷,谁能帮我! 很陋的问题:VC里对寄存器的输出输入函数有哪些,象InPut,OuPut等,我不能确定函数名具体是不是这样 系统是简单的好, 谁知道怎么检查内存泄露的问题? 如何获取一个窗口的句柄! DirectInput键盘问题, 论坛n多人问, 还没有解决, 有源码, 必现的问题
能够告诉我C#具体如何实现,我看看能不能的得到点启发。多谢
不过曾经在网上看过用VC++实现反射的文章,没有仔细看。楼主好好找找。
.h
class CMyString: public CObject
{
protect:
CMyString();
DECLARE_DYNCREATE(CMyString)
......
.cpp
IMPLEMENT_DYNCREATE(CMyString, CObject)
创建
RUNTIME_CLASS(CMyString)->CreateObject();
CRuntimeClass* prt = RUNTIME_CLASS( CAge );
ASSERT( lstrcmp( prt->m_lpszClassName, "CAge" ) == 0 );
或者通过宏,其实RUNTIME_CLASS也就是通过宏来实现的
#define NEW_OBJ(CLASS_NAME, OBJ, OBJ_VALUE) CLASS_NAME OBJ(OBJ_VALUE)如:
NEW_OBJ(string, str, "Test");
cout << str << endl;
会替换为:
string str("Test") ;
cout << str << endl;