我环顾四周,我需要一个适用于 2 个或更多 C++/CLI 文件的 Singleton 类示例。
您如何在 C++/CLI 而非 C# 中声明单例?
您如何在两个或多个 C++/CLI 文件中共享该单例?
当我尝试共享该单例时,我不断收到变量重新定义。
最佳答案
这是针对 C++/CLI,而不是“.NET Managed Extensions for C++”又名 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
)。那么就不会有任何重新定义的问题。
关于C++/CLI 中的单例示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258545/