打造可复用的数据结构库——3 顶层父类创建

1 顶层父类存在的意义

  1. C++ 的编译在有些细微的地方存在相同的代码在不同编译器下的编译的结果不同的显现。例如:new失败以后,有些抛出异常,有的返回nullptr。有的编译器不支持异常···,所以要在内存的操作做一个统一的处理。
  2. 尽量使用单继承方式处理,防止架构问题出现。

    综上: 设计一个顶层父类,所有的数据结构都继承自这个类,这个类处理动态内存申请行为。

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()
{

}

你可能感兴趣的:(c++,数据结构)