我在C++中編寫內存管理器 - 也就是從堆中分配大量字節的類,然後爲我的程序使用分配和釋放函數。C++中的動態類類型
void* allocate(int size);
void deallocate(void*, int size);
這工作得很好,但我不喜歡它,我需要這樣做是爲了使用它:
CClass* myobject = (CClass*) manager->allocate(sizeof(CClass));
所以我的問題是,有沒有辦法通過類類型的功能,而不是使用空指針?這將消除對cast和sizeof調用的需要,並且它也可以消除將對象大小傳遞給釋放函數的需要。
有誰知道更好的方法,我可以做到這一點?
模板ftw。順便說一句這些類是否有構造函數和析構函數? – doctorlove
你的意思是CClass?當我使用這種方法時,它的構造函數和析構函數將不會被調用,我意識到這一點。 – user2226001