我在C++中编写内存管理器 - 也就是从堆中分配大量字节的类,然后为我的程序使用分配和释放函数。C++中的动态类类型
void* allocate(int size);
void deallocate(void*, int size);
这工作得很好,但我不喜欢它,我需要这样做是为了使用它:
CClass* myobject = (CClass*) manager->allocate(sizeof(CClass));
所以我的问题是,有没有办法通过类类型的功能,而不是使用空指针?这将消除对cast和sizeof调用的需要,并且它也可以消除将对象大小传递给释放函数的需要。
有谁知道更好的方法,我可以做到这一点?
模板ftw。顺便说一句这些类是否有构造函数和析构函数? – doctorlove
你的意思是CClass?当我使用这种方法时,它的构造函数和析构函数将不会被调用,我意识到这一点。 – user2226001