首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

动态创设类的对象

2012-11-04 
动态创建类的对象#include iostream#includestringusing namespace stdclass CObject///类信息表结

动态创建类的对象

#include <iostream>#include<string>using namespace std;class CObject;///类信息表结构struct CRuntimeClass{char* m_lpszClassname ; //类名CObject* (_stdcall *m_pfnCreateObject)(); ///对象构建函数指针CObject* _stdcall CreateObject();///对象构建函数的声明};//CObject类声明及实现class CObject{public :virtual void SayHello() {cout<<"Hello CObject \n";}};///派生类Myclass及实现class Myclass : public CObject{public:virtual void SayHello() {cout<<"Hello Myclass\n";}public:///对象动态创建的声明static CRuntimeClass classMyclass;//定义CRuntimeClass变量作为信息表static CRuntimeClass *GetRuntimeClass();//获得信息表指针的函数};///动态创建的实现///对象构建函数的实现CObject* _stdcall CreateObject(){return new Myclass;}///填写信息表CRuntimeClass Myclass::classMyclass = {"Myclass" , CreateObject};///获得类信息表指针函数的实现CRuntimeClass * Myclass::GetRuntimeClass(){return &Myclass::classMyclass ;}///主函数void main(){char _lpszCLS[10];cout<<"请输入类名:     ";cin>>_lpszCLS;CRuntimeClass * p = Myclass::GetRuntimeClass ();if(!strcmp(p->m_lpszClassname , _lpszCLS)){CObject* _stdcall pp = p->m_pfnCreateObject();pp->SayHello ();}else{cout<<"NO"<<endl;}}


动态创设类的对象

动态创设类的对象

热点排行