⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memorymgr.h

📁 c++ 游戏编程中的内存管理源码示例
💻 H
字号:

#ifndef MEMORYMGR_H_
#define MEMORYMGR_H_


#include "HeapFactory.h"
#include <cstddef>


void * operator new (size_t size);
void * operator new (size_t size, Heap * pHeap);
void operator delete (void * pMem, size_t size); 



#define DECLARE_HEAP \
    public: \
        static void * operator new(size_t size); \
        static void operator delete(void * p, size_t size); \
    private: \
        static Heap * s_pHeap; 


#define DEFINE_HEAP(className,heapName) \
    Heap * className::s_pHeap = NULL; \
    void * className::operator new(size_t size) { \
        if (s_pHeap==NULL)  \
            s_pHeap = HeapFactory::CreateHeap(heapName); \
        return ::operator new(size, s_pHeap); \
    } \
    void className::operator delete(void * p, size_t size) { \
        ::operator delete(p); \
    }


#define DEFINE_HIERARCHICALHEAP(className,heapName,parentName) \
    Heap * className::s_pHeap = NULL; \
    void * className::operator new(size_t size) { \
        if (s_pHeap==NULL)  \
            s_pHeap = HeapFactory::CreateHeap(heapName,parentName); \
        return ::operator new(size, s_pHeap); \
    } \
    void className::operator delete(void * p, size_t size) { \
        ::operator delete(p); \
    }





#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -