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

发布于 2024-09-10 12:42:45 字数 159 浏览 3 评论 0原文

我环顾四周,我需要一个跨 2 个或更多 C++/CLI 文件运行的 Singleton 类的示例。

如何在 C++/CLI 中而不是 C# 中声明单例?

如何在两个或多个 C++/CLI 文件之间共享该单例?

当我尝试共享该单例时,我不断收到变量重新定义。

I've looked around, I need an example for Singleton class that works across 2 or more C++/CLI files.

How do you declare a singleton in C++/CLI, not C# ?

How do you share that singleton across two or more C++/CLI files?

I keep getting Variable redefinitions when I try to share that singleton.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生寂 2024-09-17 12:42:45

这是针对 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)。那么就不会有任何重新定义的问题。

This is for C++/CLI, not ".NET Managed Extensions for C++" aka C++.NET. Don't use the Managed Extensions (Visual Studio 2002-2003), they're buggy.

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; } }
};

As for "across multiple files", other compilation units in the same project use #include, other assemblies use a reference (or #import). Then there won't be any redefinition issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文