У меня два вопроса.
Вопрос 1: Может ли кто-нибудь привести пример того, как определить / переопределить переменную в пространстве имен. Я сам дал вам предположение, чтобы вы основали свой ответ.
// namespace.hpp
namespace example
{
static string version;
static int x;
}
А затем в .cpp, как мне переопределить эти переменные?
// namespace.cpp
namespace example
{
version = "0.1"; // ?????
x = 0; //???
}
Вопрос 2: Как бы я прикрепил объект постоянного класса к пространству имен из того же файла .hpp? Что-то вроде этого:
// namespace.hpp
class Idk
{
public:
int doThis();
}
namespace example
{
Idk idkObject;
}
Приведенный выше код при включении несколько раз (из разных файлов) заменит объект, что приведет к ошибкам компиляции. Еще раз, мне нужен постоянный способ прикрепить объект к пространству имен его заголовочный файл.
Вопрос 1: Вам также необходимо указать тип
// namespace.cpp
namespace example
{
string version = "0.1"; // ?????
int x = 0; //???
}
Вопрос 2: Вы не должны создавать «нестатический» объект в заголовочном файле независимо от пространства имен. Вы должны просто использовать static здесь, иначе вы должны использовать extern в заголовочном файле и определить переменную внутри файла cpp. {Обратите внимание, что это немного отличается от шаблонизированных классов}
// namespace.hpp
class Idk
{
public:
int doThis();
}
namespace example
{
static Idk idkObject;
}
// namespace.cpp
namespace example
{
Idk idkObject; // Default constructor
}
Других решений пока нет …