模仿MFC动态基础的机制

时间:2012-03-09 08:33:02

标签: c++ windows mfc

当我学习MFC时,我想模仿一些机制,在这里,我只是想模仿MFC的动态机制来创建对象简单。你能指出哪里是错误,以及如何完成它 。谢谢......

class Object;
struct classRuntime 
{
    Object* pBasedClass;
    Object* pNextClass;
    char* className;
    Object* CreateClass();
};

class Object
{
public:
    static struct classRuntime ObjectClassRuntime;
    Object() {
        cout<<"Object constructor"<<endl;
    }
    static Object* CreateObject() {
        return new Object;
    }
};

 classRuntime Object::ObjectClassRuntime = {NULL, NULL, "Object", 
                                                          Object::CreateObject};

enter image description here

1 个答案:

答案 0 :(得分:1)

class Object;

struct ClassRuntime {
    Object*   basedClass;
    Object*   nextClass;
    char*     className;
    Object* (*instanceFactory)();
};

class Object
{
public:
    static const ClassRuntime ObjectClassRuntime;
    Object() {}
    static Object* CreateInstance() { return new Object; }
};
const ClassRuntime Object::ObjectClassRuntime = {NULL, NULL, "Object", Object::CreateInstance};

class Toto : public Object
{
public:
    static const ClassRuntime TotoClassRuntime;
    Toto() {}
    static Object* CreateInstance() { return new Toto; }
};
const ClassRuntime Toto::TotoClassRuntime = {NULL, NULL, "Toto", Toto::CreateInstance};