簡體   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