C++中的std::nothrow使用
作者:distant1219
这篇文章主要介绍了C++中的std::nothrow使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
C++的std::nothrow使用
在 C 语言中,使用 malloc 申请内存时,需要判断一下是否申请成功。如果返回指针为 NULL , 则不成功。所以只需要判断返回指针是否为空即可。
而在 C++ 中,通过 new 申请一段内存空间时,如果不成功,其返回的是一个异常 std::bad_alloc ,需要用 try catch 去捕获这个异常来判断成功与否。
而C中的判断方式是很方便的,为了使用和C中一样的方式,于是提出了 std::nothrow 的方式。字面意思就是不要抛出异常,即如果申请失败,返回空指针即可。
使用方式如下:
int* val = new (std::nothrow) int[10];
Student* stu = new (std::nothrow) Student('Jack');C++error C2039: “cout“: 不是“std“的成员
case1:
包含文件次序错了。改为`
#include "stdafx.h" #include "iostream" .....
case2:
没有添加命名空间std所在的头文件iostream
正确写法:
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "hello world!I'm C++." << std::endl;
system("pause");
return 0;
}或
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "hello world!I'm C++." << endl;
system("pause");
return 0;
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
