c++ - 如何在多个文件和类之间传递实例

标签 c++ algorithm oop instance multiple-instances

假设我正在编写一个软件,它有大约 50 个类。 我们可以将类分为两部分: 1. 我们强制为更多的实例创建实例的类。 2. 类我们只创建一个实例直到程序结束。

所以,假设我有 MainProgram 类,一切都在这里做,然后 在 main.cpp 中创建一个实例并运行我的程序。 现在,我需要将只创建一次的实例(选项 2)传递给其他类,你呢? 有什么想法可以实现吗? 因为我不能 new 了。我只是使用旧实例。例如: 我编写了一个 SocketNetwork 类,它的构造函数获取端口号并绑定(bind) 到它。 所以我不能再次重新绑定(bind),我被迫访问给定端口号的资源。

最佳答案

您似乎在寻找 singleton pattern .

它是这样的:

class A
{
public:
   static A& getInstance()
   {
      static A a;
      return a;
   }
private:
   A() {}
};

因为构造函数是私有(private)的,所以你只能获取通过getInstance()方法创建的A的单个实例,你可以在任何地方调用。

`A::getInstance()`

将始终返回 A 的相同实例。

关于c++ - 如何在多个文件和类之间传递实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045669/

相关文章:

algorithm - 用堆进行外部排序?

arrays - 使用递归分离整数数组中的偶数和奇数

algorithm - 具有断开图的 Kruskal 算法

c++ - Getter & Setter 的最佳表现

c++ - Qt,C++ : QListWidget internal drag&drop - how to connect to signal?

c++ - 使用 Cloaking 模式时需要虚拟析构函数吗?

C++ - DWORD 十进制到 DWORD 十六进制

c# - yield 返回 IEnumerator 或 IEnumerable

java - 如何避免在可观察的通知中使用 if/else?

java - 如何避免违反里氏替换原则 (LSP)?