一个C++问题,高手进,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/08 02:17:16
#include <iostream.h>
#include<stddef.h>
class memmanager{
char *s;
char *m;
public:
void *operator new(size_t size);//分配一块大小为size的内存
void *operator new(size_t size,char tag);//分配一块大小为size的内存,并且用字符tag赋值
void *operator delete(void *p);//释放指针p所指向的一块内存空间
};
void *memmanager::operator new(size_t size)
{
cout<<"new1 operator"<<endl;
char *s=new char[size];//分配大小为size的内存空间
*s='a'; //用字符'a'赋值
return s;//返回指针
}
void *memmanager::operator new(size_t size,char tag)
{
cout<<"new2 operator"<<endl;
*s=tag; //用字符串tag赋值
return s;//返回指针
}
void memmanager::operator delete(void *p)
{
cout<<"delete operator"<<endl;
char *s=(char *)p;//强制类型转换
delete[] s;
}
void main()
{memmanager *m=new memmanager();
delete m;
memmanager *m=

自己不会看出错打印出来的字吗?
class memmanager{
char *s;
char *m;
public:
void *operator new(size_t size);//分配一块大小为size的内存
void *operator new(size_t size,char tag);//分配一块大小为size的内存,并且用字符tag赋值
void operator delete(void *p);//释放指针p所指向的一块内存空间
};
void *memmanager::operator new(size_t size)
{
cout<<"new1 operator"<<endl;
char *s=new char[size];//分配大小为size的内存空间
*s='a'; //用字符'a'赋值
return s;//返回指针
}
void *memmanager::operator new(size_t size,char tag)
{
cout<<"new2 operator"<<endl;
char *s=new char[size];
*s=tag; //用字符串tag赋值
return s;//返回指针
}
void memmanager::operator delete(void *p)
{
cout<<"delete operator"<<endl;
char *s=(char *)p;//强制类型转换
delete[] s;
}

int main()
{
memmanager *m=new memmanager();
delete m;
memmanager *m1=