У меня есть класс в файле MyClass.h:
// MyClass.h
#ifndef __MY_CLASS_H__
#define __MY_CLASS_H__
#include <string>
class MyClass
{
static const std::string MyStaticConstString; // I cannot initialize it here, because it's not an integral type.
};
// OK, let's define/initialize it out side of the class declaration
// static
const std::string MyClass::MyStaticConstString = "Value of MyStaticConstString";
#endif
Проблема в том, что компилятор будет жаловаться на "Multiple Definition", если этот файл включен более одного раза.
Поэтому мне нужно переместить определение MyStaticConstString
в файл MyClass.cpp.Но что, если MyClass
является частью библиотеки, и я хочу, чтобы мои пользователи увидели статическое значение const в файле MyClass.h, что имеет смысл, потому что это статическое значение const.
Как следуетделать?Надеюсь, я ясно дал понять.
Спасибо.
Питер