繁体   English   中英

如何初始化静态成员

[英]How to initialize a static member

我想初始化两个静态数据成员。 请参阅这两个文件

// Logger.h   

class Logger
{
    public:
        static LoggerConcrete error;
        static LoggerConcrete write;
};

//Logger.cpp

Logger::error = LoggerConcrete(LOG_DEBUG);
Logger::write = LoggerConcrete(LOG_DEBUG);

在Logger.cpp中启动两个静态成员不起作用。 我得到以下编译器(g ++)错误:

g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -MMD -MP -MF“Logger.d”-MT“Logger.d”-o“Logger.o”“../ Logger.cpp”.. /Logger.cpp:13:错误:在'='标记之前的预期构造函数,析构函数或类型转换../Logger.cpp:14:错误:在'='标记之前的预期构造函数,析构函数或类型转换

我想在包含Logger.h的每个类中使用Logger :: write和Logger :: error。 我如何初始化这两个成员?

您需要指定类型:

LoggerConcrete Logger::error = LoggerConcrete(LOG_DEBUG);
LoggerConcrete Logger::write = LoggerConcrete(LOG_DEBUG);

您也可以使用此语法,更简洁一点:

LoggerConcrete Logger::error(LOG_DEBUG);
LoggerConcrete Logger::write(LOG_DEBUG);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM