Это для 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
).Тогда не будет никаких проблем с переопределением.