📄 free.cpp
字号:
class link { // A singly-linked list node
public: // with freelist
ELEM element; // ELEM value for this node
link* next; // Pointer to next node in list
static link* freelist; // Link class freelist
link(const ELEM& elemval, link* nextval =NULL)
{ element = elemval; next = nextval; }
link(link* nextval =NULL) { next = nextval; }
~link() { } // Destructor: take no action
void* operator new(size_t); // Overloaded new operator
void operator delete(void*); // Overloaded delete operator
};
// This creates space for the freelist variable
link* link::freelist = NULL;
void* link::operator new(size_t) { // Overload new
if (freelist == NULL) return ::new link; // Create new space
link* temp = freelist; // Otherwise, get from freelist
freelist = freelist->next;
return temp; // Return the link node
}
void link::operator delete(void* ptr) { // Overload delete
((link*)ptr)->next = freelist; // Put on freelist
freelist = (link*)ptr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -