1 顶层父类存在的意义
- C++ 的编译在有些轻微的中央存在雷同的代码在不同编译器下的编译的后果不同的浮现。例如:new失败当前,有些抛出异样,有的返回nullptr。有的编译器不反对异样···,所以要在内存的操作做一个对立的解决。
- 尽量应用单继承形式解决,避免架构问题呈现。
综上: 设计一个顶层父类,所有的数据结构都继承自这个类,这个类解决动态内存申请行为。
2 类的次要内容
class Object
{
public:
void * operator new (unsigned int size ) throw();
void operator delete (void *p ) ;
void * operator new[] (unsigned int size ) throw();
void operator delete[] (void *p ) ;
virtual ~Object()=0;
}
3 类的实现
void * Object :: operator new (unsigned int size ) throw()
{
return malloc( size);
}
void Object :: operator delete (void *p )
{
free( p);
}
void * Object :: operator new[] (unsigned int size ) throw()
{
return malloc( size);
}
void Object :: operator delete[] (void *p )
{
free( p);
}
Object :: ~Object()
{
}
发表回复