64,683
社区成员
发帖
与我相关
我的任务
分享
#ifndef QUEUE_H
#define QUEUE_H
class Screen{
public:
void *operator new(size_t);
private:
Screen *next;
static Screen *freeStore;
static const int screenChunk;
};
#endif
#include <iostream>
#include "model1.h"
#include <cstddef>
Screen *Screen::freeStore=0;
const int Screen::screenChunk=24;
void *Screen::operator new(size_t size)
{
Screen *p;
if( !freeStore ){
size_t chunk=screenChunk *size;
freeStore = p =reinterpret_cast<Screen *>(new char[chunk]);
//把已经分配的内存串连起来
for( ; p != &freeStore[screenChunk-1] ; ++p )
p->next=p+1;
p->next=0;
}
p=freeStore;
freeStore=freeStore->next;
return p;
}