Просто интересно, зачем вам нужно инициализировать его внутри конструктора?
Обычно вы делаете элемент данных статичным, поэтому вам не нужно создавать экземпляр, чтобы иметь доступ к этому члену. Конструкторы вызываются только при создании экземпляра.
Неконстантные статические члены инициализируются вне объявления класса (в файле реализации), как показано ниже:
class Member
{
public:
Member( int i ) { }
};
class MyClass
{
public:
static int i;
static char c[ 10 ];
static char d[ 10 ];
static Member m_;
};
int MyClass::i = 5;
char MyClass::c[] = "abcde";
char MyClass::d[] = { 'a', 'b', 'c', 'd', 'e', '\0' };
Member MyClass::m_( 5 );