www.gusucode.com > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序 > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序/code/C++例题程序/第6章/s6_6/smain6_6.cpp

    //Download by http://www.NewXing.com
//文件名:smain6_6.cpp
//delete重载,非运行程序

void operator delete(void *rawmemory)		//非类的delete伪代码
{
	if (rawmemory == 0) return;    	//如果指针为空,返回
		释放rawmemory指向的内存;
	return;
}

class base                //类中的delete伪代码。
{                       // 和前面一样,只是这里声明了
public:                            
	// operator delete
	static void *operator new(size_t size);
	static void operator delete(void *rawmemory, size_t size);
	//...
};

void base::operator delete(void *rawmemory, size_t size)
{
	if (rawmemory == 0) return;			// 检查空指针
	if (size != sizeof(base))				// 如果size"错误",
	{
		::operator delete(rawmemory);	// 让标准operator来处理请求
		return;
	}
	释放指向rawmemory的内存;
	return;
}