assert,用于运行时的检查,当表达式求值为false时,表示断言失败,运行时会报错
#include <string>
#include <iostream>
#include <assert.h>
using namespace std;
class Human{
public:
void setName(string name)
{
assert(name.length() > 0);//设置的名字字符串不能为空
m_name = name;
}
string getName()
{
return m_name;
}
private:
string m_name;
};
int main()
{
Human xiaoMing;
xiaoMing.setName("");
cout<<xiaoMing.getName();
return 0;
}
运行会报断言错误:Assertion failed! Expression: name.length() > 0
该断言可以通过定义NDEBUG来关闭检查:
方法1:在#include <assert.h>前,先定义#define NDEBUG
方法2:编译的时候加入编译选项-DNDEBUG
#error,<