AUGUN
这里总有人犯错
你们还总当老好人
就我自己管理着
嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
1.最好的方法是:在类之外声明一个函数监控,该函数以队列类为参数判断,这就要求你在类中加一个标志,纳闷的是你的队列是链来的
2.你的队列处理起来遇到的困惑可能是当分配内存失败时不知道如何处理.我考虑了一下,可以有两种方法:
第一,NEW其实有两种的,一般的标准使用方法在内存分配出错时抛出一个类型为BAD_ALLOC的异常,该异常类型在<new>头文件中定义,可以采用如下的框架:try{
ptr=new datetype[number];}catch(bad_alloc &e)
{cerr<<"unable to allocate memory";
return;
}稍微修改一下可以返回你要的返回结果,自己去想吧.
第二,还有一种NEW是不抛出异常的,叫NOTHROW版本的NEW ,,例如:ptr=new(nothrow) int (numbers);if(ptr==null){ 这个括号你可以干你想要的事,明白了吗?}这个版本的new在内存分配失败时返回的是null,而不抛异常.
1.最好的方法是:在类之外声明一个函数监控,该函数以队列类为参数判断,这就要求你在类中加一个标志,纳闷的是你的队列是链来的
2.你的队列处理起来遇到的困惑可能是当分配内存失败时不知道如何处理.我考虑了一下,可以有两种方法:
第一,NEW其实有两种的,一般的标准使用方法在内存分配出错时抛出一个类型为BAD_ALLOC的异常,该异常类型在<new>头文件中定义,可以采用如下的框架:try{
ptr=new datetype[number];}catch(bad_alloc &e)
{cerr<<"unable to allocate memory";
return;
}稍微修改一下可以返回你要的返回结果,自己去想吧.
第二,还有一种NEW是不抛出异常的,叫NOTHROW版本的NEW ,,例如:ptr=new(nothrow) int (numbers);if(ptr==null){ 这个括号你可以干你想要的事,明白了吗?}这个版本的new在内存分配失败时返回的是null,而不抛异常.