Пример Singleton в C++ / CLI?

Я озирался, мне нужен пример для Singleton-класса, который работает через 2 или больше C++ / файлы CLI.

Как Вы объявляете одиночный элемент в C++ / CLI, не C#?

Как Вы совместно используете тот одиночный элемент через два или больше C++ / файлы CLI?

Я продолжаю получать Переменные переопределения, когда я пытаюсь совместно использовать тот одиночный элемент.

12
задан Greg D 15 July 2010 в 18:24
поделиться

2 ответа

Это для C++/CLI, а не для ".NET Managed Extensions for C++" aka C++.NET. Не используйте управляемые расширения (Visual Studio 2002-2003), они глючные.

ref class Singleton
{
private:
  Singleton() {}
  Singleton(const Singleton%) { throw gcnew System::InvalidOperationException("singleton cannot be copy-constructed"); }
  static Singleton m_instance;

 public:
  static property Singleton^ Instance { Singleton^ get() { return %m_instance; } }
};

Что касается "через несколько файлов", то другие единицы компиляции в том же проекте используют #include, другие сборки используют ссылку (или #import). Тогда не будет проблем с переопределением.

17
ответ дан 2 December 2019 в 19:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: