呵呵,这个属于纯C++的问题了,我也不太了解,大致说一点:
使用new分配内存出现内存不足的情况时,会抛出std::bad_alloc异常,你应该捕捉这个异常进行处理(另外还可以设置一个分配内存失败时的回调函数,在头文件<new>中提供了一个函数set_new_handler用来注册这个回调函数)
new 也有不抛出异常的形式,当失败时,返回一个NULL指针
openAction = new(std::nothrow) QAction("open");
然后你可以使用if语句去判断。
一般说,PC机上一般程序几乎不会发生new失败的情况,所以你见到的demo中也不会对此考虑太多。