c++ - 模仿MFC的动态基础机制

标签 c++ windows mfc

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

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

最佳答案

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};

关于c++ - 模仿MFC的动态基础机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9631013/

相关文章:

c++ - MFC中如何对CListCtrl中的Item进行排序?

c++ - Pocket PC 上的 MS Web 浏览器

c++ - 在宏中扩展宏

c++ - 什么是 C++ 中的转换构造函数?它是干什么用的?

java - 安装后"Java is not recognized as an internal or external command"

c++ - 使用 IOCTL_CHANGER_GET_PRODUCT_DATA 调用 DeviceIoControl 时出现 ERROR_ACCESS_DENIED

c++ - 使用 C++ MFC 函数在圆圈周围绘制文本

C++ 将八个 boolean 值压缩为一个字符

C++ cin char 逐个符号读取

windows - 如何使用 Visual Studio 2019 构建 GTK+ 应用程序?