C++/CLI 中的单例示例?

标签 singleton c++-cli

我环顾四周,我需要一个适用于 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/

相关文章:

java - Spring MVC 中单例 bean 多次实例化?

c# - .NET 双重检查锁定中对 volatile 修饰符的需求

javascript - JQuery addClass 不适用于点击事件上的 anchor 标记

.NET 绘制全屏游戏

c# - 如何将 C# 函数指针传递给 CLI/C++ 代码?

c# - 如何将字符串转换为 Guid?

c# - C++/命令行界面 : Advantages over C#

c++ - 如果基类被公开继承,基类的公共(public)静态函数是否成为派生类的成员函数?

c++ - 由在 DTor 之前删除的静态对象创建的线程?

com - 在 C++ 中调用 Visual Basic DLL,第 2 部分