C++ 简单记录器的故障
我试图用静态方法创建一个简单的日志类,但是当我尝试记录一些C++ 简单记录器的故障,c++,logging,C++,Logging,我试图用静态方法创建一个简单的日志类,但是当我尝试记录一些constchar*变量时遇到了麻烦,我想知道为什么。它表示错误:表达式必须具有整数或非范围枚举类型。我在stackoverflow和google上找到了它,但不知怎么的,它并不能帮助我把它做好。 日志记录方法如下所示: void Logger::log(const char* message){ #ifdef _DEBUG std::cout<< "[INFO]" << message <<
constchar*
变量时遇到了麻烦,我想知道为什么。它表示错误:表达式必须具有整数或非范围枚举类型
。我在stackoverflow和google上找到了它,但不知怎么的,它并不能帮助我把它做好。
日志记录方法如下所示:
void Logger::log(const char* message){
#ifdef _DEBUG
std::cout<< "[INFO]" << message << std::endl;
#endif
}
void Logger::err(const char* message){
#ifdef _DEBUG
std::cout << "[ERROR]" << message << std::endl;
#endif
}
void记录器::日志(常量字符*消息){
#ifdef_调试
std::cout问题与日志记录无关。不能使用+
连接C
字符串
"Getting value: " + name // Not going to work.
如果您使用的是c++
,我会尽可能使用std::string
,因为std::string确实支持++
进行连接。问题与您的日志记录无关。您无法使用+
连接c
字符串
"Getting value: " + name // Not going to work.
如果您使用的是c++
,我会尽可能使用std::string
,因为支持++
进行连接。char*
或char const*
是指针类型,而不是类或结构,因此不支持使用+
运算符进行连接
使用C++的方式,使用C++处理字符串的方式:用<代码> > const char */> >:字符串>和/代码> .< /p> < p> <代码> char *<代码>或代码> char const */COD>是指针类型,不是类或结构,因此不支持使用<代码> +< /C>操作>连接。
使用C++,使用C++处理字符串的方式:用<代码> > const STD::String和< /C> > /< P> > p>表达式< < /P>
获取值:“+name+”失败
其中name为const char*name
是一个错误,因为全局命名空间中没有运算符+采用const char*
。必须使用strcat
,strcpy
等
<>在C++中,你应该使用<代码> STD::String < /Cord>这是非常灵活的(即动态调整大小):
表情
获取值:“+name+”失败
其中name为const char*name
是一个错误,因为全局命名空间中没有运算符+采用const char*
。必须使用strcat
,strcpy
等
<>在C++中,你应该使用<代码> STD::String < /Cord>这是非常灵活的(即动态调整大小):
表达式获取值:“+name+”:“+node->value()
几乎不是字符常量*
。表达式获取值:“+name+”:“+node->value()
几乎不是字符常量*
。
char* Config::getConfigValue( std::string name){
//...
Logger::log("Getting value: " + name + ": "+ node->value());
}