Пример синглтона в C ++ / CLI? - PullRequest
12 голосов
/ 15 июля 2010

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

Как вы объявляете синглтон в C ++ / CLI, а не в C #?

Как вы делитесь этим синглтоном между двумя или более файлами C ++ / CLI?

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

Ответы [ 2 ]

17 голосов
/ 17 июля 2010

Это для C ++ / CLI, а не ".NET Managed Extensions for C ++" или C ++. NET.Не используйте Managed Extensions (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).Тогда не будет никаких проблем с переопределением.

0 голосов
/ 15 июля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...