详解C++中new运算符和delete运算符的使用
C++ 支持使用 new 和 delete 运算符动态分配和释放对象。如果请求针对零字节存储,operator new 将返回一个指向不同的对象的指针。如果分配请求没有足够的内存,则 operator new 将返回 NULL 或引发异常。operator new 的第一个参数的类型必须为 size_t,并且返回类型始终为 void *。用括号包含的提供给 new 的参数将作为 Blanks::operator new 参数传递给 chInit。但是,全局 operator new 函数将被隐藏,从而导致以下代码生成错误:在 Visual C++ 5.0 和早期版本中,使用 new 运算符分配的非类类型和所有数组始终使用全局 operator new函数。第一个形式按照为全局 operator delete 描述的那样运行。当基类中的 operator delete 函数用于删除派生类的对象时,第二个形式特别有用。若要执行此检测,则应重新定义全局 new 和 delete 运算符以计算内存的分配和释放。
用户评论