Вам нужно инициализировать (определить) его вне определения класса в файле cpp.
MessageType const MessageType::msgEvent;
Однако, Ваше намерение сделать это не очень ясно.Пытаетесь ли вы реализовать шаблон Singleton, вероятно, этот пример реализации может помочь, я оставляю вам решать, действительно ли вам нужен Singleton, несмотря на его недостатки:
//MessageType.h
#include <boost/noncopyable.hpp>
class MessageType: private boost::noncopyable
{
public:
static MessageType* instance();
private:
MessageType();
~MessageType();
static bool g_initialised;
// static initialisation
static MessageType g_instance;
// dynamic initialisation
};
// MessageType.cpp
#include "MessageType.hpp"
#include <ostream>
#include <iostream>
#include <cstring>
bool MessageType::g_initialised;
// static initialisation
MessageType MessageType::g_instance;
// dynamic initialisation
MessageType::MessageType()
{
g_initialised = true;
}
MessageType::~MessageType()
{
g_initialised = false;
}
MessageType* MessageType::instance()
{
return g_initialised ? &g_instance : 0;
}