我在头文件里这样声明
WF_Error WriteLog(LOG_LEVEL mLevel,MODULE_CODE mModule, string msg,string filename=NULL,int line_num = 0);
在WINDOWS下编译、运行没问题,但是LINUX下编译可以通过,运行时出现下列错误
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
实际上,不应该这样声明的,应该
WF_Error WriteLog(LOG_LEVEL mLevel,MODULE_CODE mModule, string msg,string filename="",int line_num = 0);
这是别的BLOG里看到的:
是在类初始化时用了类似这样的东西
clasa A{
public:
A(sting= 0;){}
};
这是不对的,string 不可以有NULL指针,若要只能写成
string ="";