10.4.2 内存分配错误
2025年09月26日
10.4.2 内存分配错误
类bad_alloc的声明形式为:
类bad_alloc定义了诸多异常对象的类型。这些异常对象是在分配内存失败时所抛出的异常类型对象。下面分别介绍类中的各个函数。
1.bad_alloc()throw()
使用类bad_alloc构造一个对象,bad_alloc()函数恰好是类的构造器。
调用what()函数时,会导致定义所构造的新对象。
2.bad_alloc(const bad_alloc&)throw()
这两个函数的功能是实现完成一个类bad_alloc的备份。
3.virtual const char∗ what()const throw()
函数返回值是一个NTBS。
4.typedef new_handler
new_hanlder()函数产生一个新的句柄。新产生的new_handler类型的句柄应该执行下述的行为之一:
1)尽量开辟更多的内存,并返回该内存。
2)抛出bad_alloc类型的异常,或者抛出类bad_alloc的派生类的异常。
3)调用abort()函数或者exit()函数。
5.set_new_hanlder
其声明形式为:
功能:设置参数new_p指定的函数作为当前的new_handler。
返回值:第一次调用时,函数返回0;通常函数返回值是之前设置的new_handler类型的句柄。