当我学习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};
最佳答案
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/