私はC++でclass
呼び出されました。Tracer
私のTracer.h
ファイルには次のものがあります。
class Tracer{
public:
// not useful to the question.
private:
Logger *m_logger;
const char *m_who;
const char *m_fileName;
const void * m_theObject;
int m_lineNum;
int m_log_level;
}
そしてTracer.cpp
私は持っています:
Tracer::Tracer(
Logger *logger,
const void *theObject,
const char *who,
const char *file,
int line,
int log_level
) :
m_logger(logger),
m_who(who),
m_fileName(file),
m_lineNum(line),
m_theObject(theObject),
m_log_level(log_level)
{
// more implementation which is not useful to the problem.
問題は、初期化時にm_theObject(theObject)
次の警告が表示されることです。
/home/pribeiro/workspace/Tracer.h:80: warning: 'const void* Tracer::m_theObject'
/home/pribeiro/workspace/Tracer.cpp:27: warning: when initialized here
Tracer.h:80
andは行m_theObject
での宣言です。私のコンパイル レベルでは、警告はエラーのように扱われます。コンパイラがポインタの初期化について不平を言うのはなぜですか?Tracer.h
Tracer.cpp:27
m_theObject(theObject
const void *